Windows 服务器Nginx 下载、摆设、配置流程(图文教程) ...

打印 上一主题 下一主题

主题 492|帖子 492|积分 1476

不定期更新
目录
一、下载Nginx安装包
二、上传安装包
三、启动Nginx
四、Nginx常用命令
五、Nginx(最小)配置详解
 六、Nginx(根本)配置详解
七、反向署理
八、负载均衡
九、动静分离
十、报错

 
一、下载Nginx安装包

四个网址,根据自己的情况选择,我是用Nginx开源版的。
1、下载网址

1)Nginx开源版

nginx news
http://nginx.org/
2)Openresty

OpenResty® - 开源官方站
https://openresty.org/cn/
3)Tengine

Tengine Web 服务器 (taobao.org)
https://tengine.taobao.org/
4)Nginx plus 贸易版(收费)

F5 | 多云安全和应用交付
https://www.f5.com.cn/
2、下载

在Nginx开源版选择对应系统下载nginx安装包


二、上传安装包

将下载的Nginx安装包上传到Windows假造机中并解压到想安装的路径,我就直接在桌面操作了
   假如没有Windows Server 假造机的,可以看一下这一篇安装一个。    VMware Windows Server 假造机安装 详细教程_vmware安装windows server-CSDN博客
https://blog.csdn.net/weixin_68547003/article/details/135177616    常用目录布局         1、  conf       存放相干配置文件       2、html        存放静态文件的默认目录 html、css等      3、logs     存放Nginx相干日志       

三、启动Nginx

1、双击nginx.exe启动

双击后窗口会一闪而过。

2、查看是否启动成功



3、访问默认页面确认

先查看服务器ip



打开服务器浏览器访问ip地址,默认端口是80,可以不消写。直访问ip,出现下图界面,则表示已经成功启动。

4、防火墙配置

在自己电脑访问,要么关闭防火墙,要么开通80端口访问权限,下面是允许通过80端口权限添加操作流程,背面增长端口也是这么配置的相对应的策略。

也可以通过控制面板→系统和安全→Windows防火墙→高级设置流程。

添加入站规则

允许通过80端口访问




添加完成后,在自己电脑访问服务器ip,出现下图界面表示成功。

 
四、Nginx常用命令

Nginx常用命令  命令阐明start nginx 启动nginxnginx -s stop停用Nginxnginx -s quit 停用Nginx(处理完正在进行中请求后停用)nginx -t验证新的配置是否正确nginx -s reload重新加载配置,并重启进程nginx -s reopen重启日志文件nginx -h查看帮助信息nginx -v查看Nginx版本taskkill /f /t /im nginx.exe彻底关闭nginx(关闭nginx其他服务,这样才气彻底关闭)  
 
 
 
 
 
 
 
 
 
 
 
演示:
在nginx文件夹上的路径直接输入cmd然后回车,打开命令窗口,或者通过其他方法打开命令窗口,然后到nginx文件夹路径下

   

命令启动并查看版本信息

 
五、Nginx(最小)配置详解

   Nginx配置文件是nginx文件夹路径下的  conf中的  nginx.conf       可以先将该配置文件复制备份,防止背面写错了,还能对照格式修改回来。           

这是一个nginx最常规的配置代码,更换掉原nginx.conf的代码,重启nginx或重新nginx加载配置,去浏览器访问,也能访问到默认页面。
  1. #默认为1,表示开启一个业务进程。根据服务器核数来配置,一般1个核对应1个进程
  2. worker_processes  1;
  3. #error_log  logs/error.log;
  4. #error_log  logs/error.log  notice;
  5. #error_log  logs/error.log  info;
  6. events {
  7.         #单个业务进程可接受连接数
  8.     worker_connections  1024;
  9. }
  10. http {
  11.         #引入http mime类型,引入在conf文件下的mime.types文件,让浏览器知道识别文件后缀名后该如何展示
  12.     include       mime.types;
  13.         #如果mime类型没匹配上,默认使用二进制流的方式传输。
  14.     default_type  application/octet-stream;
  15.         #使用高效网络传输,也就是数据0拷贝,直接传输数据。未开启sendfile
  16.     sendfile        on;
  17.     #保持链接时间
  18.     keepalive_timeout  65;
  19.     #vhost虚拟主机
  20.     server {
  21.         #监听端口号
  22.         listen       80;
  23.         #主机名\域名
  24.         server_name  localhost;
  25.         #匹配路径url,样例:http://nginx.org/en/download.html
  26.         location / {
  27.             #文件根目录,相对于nginx安装根目录路径
  28.             root   html;
  29.             #默认页名称,访问先到访页面
  30.             index  index.html index.htm;
  31.         }
  32.         #服务端报错后报错编码对应页面。样例:http://nginx.org/50x.html
  33.         error_page   500 502 503 504  /50x.html;
  34.         #报错后识别到域名后面跟了/50x.html,则匹配到根目录root下的html文件夹
  35.         location = /50x.html {
  36.             root   html;
  37.         }
  38.     }
  39. }
复制代码
更换测试
  1. #重新加载配置命令
  2. nginx -s reload
复制代码


访问IP地址,也能成功访问
   

 
 
 六、Nginx(根本)配置详解

1、域名解析

域名解析是为了背面 ,进行域名配置时 ,进行练习。
1)购买域名解析(要花点钱)

建议用这个,可以认识一下,背面自己有服务器了,也还可以用,不想花钱的,可以选下面第2个
域名注册_域名查询_域名申请_域名购买_域名续费_国际域名-万网-阿里云品牌 (aliyun.com)
https://wanwang.aliyun.com/domain/?spm=5176.100251.111252.18.1cb84f15FEfsCm在阿里云官网购买一个域名注册(购买要实名认证的)

选一个自制的购买就行,购买后一年有效期。
购买后到域名控制台配置



 

 
测试是否成功,ping一下域名。因为是假造机,只有在自己电脑上才气ping到,想在互联上访问,就要购买一个服务器,用服务器ip做域名解析。
假如ping不到,大概是防火墙拦截了,记得关一下防火墙

解析后也能直接通过域名访问网页了。假如端口不是80,要在域名后加上端标语

2)自己电脑配置hosts解析(免费)

因为是假造机,所以解析后只能在自己电脑上访问。
在自己电脑c盘上搜刮hosts,找到并到该路径下。
  1. #一般都在这路径下
  2. C:\Windows\System32\drivers\etc
复制代码


在桌面编辑生存后,并复制粘贴更换到原路径上的文件。这个只能匹配对应的前缀+域名,练习完后可把该文件加的解析删了。


打开命令窗口,ping一下,看能不能通。
 
2、同一IP用不同端口访问不同页面

1)桌面新建两个文件夹

这两个文件用来放两个不同html页面

2)创建html文件

在新的两个文件夹中,都新建一个文本文档,然后将名称和后缀改成index.html,右键编辑,随便在里面写点什么,能区分两个页面就行
  1. #www
  2. Hello Wlorld!1-1
  3. #web
  4. Hello Wlorld!2-2
复制代码


3)nginx.conf代码

自行跟上面的常规配置对比,主要多了一个假造主机server代码,给了888和899端口,修改了匹配展示页面的路径。

  1. #默认为1,表示开启一个业务进程。根据服务器核数来配置,一般1个核对应1个进程
  2. worker_processes  1;
  3. #error_log  logs/error.log;
  4. #error_log  logs/error.log  notice;
  5. #error_log  logs/error.log  info;
  6. events {
  7.         #单个业务进程可接受连接数
  8.     worker_connections  1024;
  9. }
  10. http {
  11.         #引入http mime类型,引入在conf文件下的mime.types文件,让浏览器知道识别文件后缀名后该如何展示
  12.     include       mime.types;
  13.         #如果mime类型没匹配上,默认使用二进制流的方式传输。
  14.     default_type  application/octet-stream;
  15.         #使用高效网络传输,也就是数据0拷贝,直接传输数据。未开启sendfile
  16.     sendfile        on;
  17.     #保持链接时间
  18.     keepalive_timeout  65;
  19.    
  20.     #vhost虚拟主机-1
  21.     server {
  22.         #监听端口号
  23.         listen       888;
  24.         #主机名\域名
  25.         server_name  localhost;
  26.         #匹配路径url,样例:http://nginx.org/en/download.html
  27.         location / {
  28.             #文件根目录,相对于nginx安装根目录路径
  29.             root   C:/Users/Administrator/Desktop/web;
  30.             #默认页名称,访问先到访页面
  31.             index  index.html index.htm;
  32.         }
  33.         #服务端报错后报错编码对应页面。样例:http://nginx.org/50x.html
  34.         error_page   500 502 503 504  /50x.html;
  35.         #报错后识别到域名后面跟了/50x.html,则匹配到根目录root下的html文件夹
  36.         location = /50x.html {
  37.             root   html;
  38.         }
  39.     }
  40. #vhost虚拟主机-2
  41.     server {
  42.         #监听端口号
  43.         listen       899;
  44.         #主机名\域名
  45.         server_name  localhost;
  46.         #匹配路径url,样例:http://nginx.org/en/download.html
  47.         location / {
  48.             #文件根目录,相对于nginx安装根目录路径
  49.             root   C:/Users/Administrator/Desktop/www;
  50.             #默认页名称,访问先到访页面
  51.             index  index.html index.htm;
  52.         }
  53.         #服务端报错后报错编码对应页面。样例:http://nginx.org/50x.html
  54.         error_page   500 502 503 504  /50x.html;
  55.         #报错后识别到域名后面跟了/50x.html,则匹配到根目录root下的html文件夹
  56.         location = /50x.html {
  57.             root   html;
  58.         }
  59.     }
  60. }
复制代码
4)重启

把代码加进配置文件中,在nginx安装路径下实行nginx -t 命令测试配置是否见效,。看不懂英文的,翻译软件翻译一下,提示正确,重新加载配置。
  1. #。测试配置是否正确,实际环境中都会先测试一下,再重启弎或重新加载配置
  2. nginx -t
  3. #重新加载配置
  4. nginx -s reload
复制代码

5)访问地址测试

IP背面加端口,ip:888,ip:899。
注意防火墙,开通一下端口,要么直接关闭防火墙。这为了方便就直接关闭防火墙了。


 
3、同一IP同一端口用不同域名访问不同页面

1)html页面文件夹照旧用上面那两个

 
2)nginx.conf代码

端标语改回80,更改域名,根据域名前缀来匹配。
也可不更改端口,域名后加上端口,即可访问。

  1. #默认为1,表示开启一个业务进程。根据服务器核数来配置,一般1个核对应1个进程
  2. worker_processes  1;
  3. #error_log  logs/error.log;
  4. #error_log  logs/error.log  notice;
  5. #error_log  logs/error.log  info;
  6. events {
  7.         #单个业务进程可接受连接数
  8.     worker_connections  1024;
  9. }
  10. http {
  11.         #引入http mime类型,引入在conf文件下的mime.types文件,让浏览器知道识别文件后缀名后该如何展示
  12.     include       mime.types;
  13.         #如果mime类型没匹配上,默认使用二进制流的方式传输。
  14.     default_type  application/octet-stream;
  15.         #使用高效网络传输,也就是数据0拷贝,直接传输数据。未开启sendfile
  16.     sendfile        on;
  17.     #保持链接时间
  18.     keepalive_timeout  65;
  19.    
  20.     #vhost虚拟主机-1
  21.     server {
  22.         #监听端口号
  23.         listen       80;
  24.         #主机名\域名,空格后面可以再接一个域名,支持正则,不同域名后缀也可以。
  25.         server_name  www.lingran.website;
  26.         #匹配路径url,样例:http://nginx.org/en/download.html
  27.         location / {
  28.             #文件根目录,相对于nginx安装根目录路径
  29.             root   C:/Users/Administrator/Desktop/www;
  30.             #默认页名称,访问先到访页面
  31.             index  index.html index.htm;
  32.         }
  33.         #服务端报错后报错编码对应页面。样例:http://nginx.org/50x.html
  34.         error_page   500 502 503 504  /50x.html;
  35.         #报错后识别到域名后面跟了/50x.html,则匹配到根目录root下的html文件夹
  36.         location = /50x.html {
  37.             root   html;
  38.         }
  39.     }
  40. #vhost虚拟主机-2
  41.     server {
  42.         #监听端口号
  43.         listen       80;
  44.         #主机名\域名,空格后面可以再接一个域名,支持正则,不同域名后缀也可以。
  45.         server_name  aaa.lingran.website;
  46.         #匹配路径url,样例:http://nginx.org/en/download.html
  47.         location / {
  48.             #文件根目录,相对于nginx安装根目录路径
  49.             root   C:/Users/Administrator/Desktop/web;
  50.             #默认页名称,访问先到访页面
  51.             index  index.html index.htm;
  52.         }
  53.         #服务端报错后报错编码对应页面。样例:http://nginx.org/50x.html
  54.         error_page   500 502 503 504  /50x.html;
  55.         #报错后识别到域名后面跟了/50x.html,则匹配到根目录root下的html文件夹
  56.         location = /50x.html {
  57.             root   html;
  58.         }
  59.     }
  60. }
复制代码
3)重启

把代码加进配置文件中,在nginx安装路径下实行nginx -t 命令测试配置是否见效。看不懂英文的,翻译软件翻译一下,提示正确,重新加载配置。
  1. #。测试配置是否正确,实际环境中都会先测试一下,再重启弎或重新加载配置
  2. nginx -t
  3. #重新加载配置
  4. nginx -s reload
复制代码

4)访问地址测试

域名直接访问,端口假如不是80要加上端标语。
因为配置域名解析的时间是配置解析全部的,所以除了第二个vhost假造主机-2的配置的aaa.lingran.website域名会到第二个页面,其他的域名默认到第一个页面即vhost假造主机-1的页面。
假如想其他域名默认到vhost假造主机-2的页面,可将域名改为通配符 *.lingran.website ,。这样除了www.lingran.website会到vhost假造主机-1的页面,其他的都到vhost假造主机-2的页面。
匹配为次序精准匹配→域名后缀通配符匹配→域名前缀通配符匹配→正则匹配,匹配到则制止



七、反向署理

1、概念

反向署理的署理服务器在服务端,请求是被动的被署理了。反向署理客户端看不到真正的业务服务器。

正向署理的署理服务器在客户端,请求是自动要求被署理的。正向署理服务器看不到真正的客户端。

2、反向署理nginx.conf代码配置

proxy_pass配置,署理b站和百度这两个网址。

nginx.conf代码
  1. #默认为1,表示开启一个业务进程。根据服务器核数来配置,一般1个核对应1个进程
  2. worker_processes  1;
  3. #error_log  logs/error.log;
  4. #error_log  logs/error.log  notice;
  5. #error_log  logs/error.log  info;
  6. events {
  7.         #单个业务进程可接受连接数
  8.     worker_connections  1024;
  9. }
  10. http {
  11.         #引入http mime类型,引入在conf文件下的mime.types文件,让浏览器知道识别文件后缀名后该如何展示
  12.     include       mime.types;
  13.         #如果mime类型没匹配上,默认使用二进制流的方式传输。
  14.     default_type  application/octet-stream;
  15.         #使用高效网络传输,也就是数据0拷贝,直接传输数据。未开启sendfile
  16.     sendfile        on;
  17.     #保持链接时间
  18.     keepalive_timeout  65;
  19.    
  20.     #vhost虚拟主机-1
  21.     server {
  22.         #监听端口号
  23.         listen       80;
  24.         #主机名\域名,空格后面可以再接一个域名,支持正则,不同域名后缀也可以。
  25.         server_name  www.lingran.website;
  26.         #匹配路径url,样例:http://nginx.org/en/download.html
  27.         location / {
  28.             #proxy_pass代理其它域名网址,proxy_pass和root只能二选一。
  29.             proxy_pass https://www.bilibili.com;
  30.             
  31.             #文件根目录,相对于nginx安装根目录路径
  32.             #root   C:/Users/Administrator/Desktop/www;
  33.             #默认页名称,访问先到访页面
  34.             #index  index.html index.htm;
  35.         }
  36.         #服务端报错后报错编码对应页面。样例:http://nginx.org/50x.html
  37.         error_page   500 502 503 504  /50x.html;
  38.         #报错后识别到域名后面跟了/50x.html,则匹配到根目录root下的html文件夹
  39.         location = /50x.html {
  40.             root   html;
  41.         }
  42.     }
  43. #vhost虚拟主机-2
  44.     server {
  45.         #监听端口号
  46.         listen       80;
  47.         #主机名\域名,空格后面可以再接一个域名,支持正则,不同域名后缀也可以。
  48.         server_name  aaa.lingran.website;
  49.         #匹配路径url,样例:http://nginx.org/en/download.html
  50.         location / {
  51.             #proxy_pass代理其它域名网址,proxy_pass和root只能二选一。
  52.             proxy_pass https://www.baidu.com;
  53.             
  54.             #文件根目录,相对于nginx安装根目录路径
  55.             #root   C:/Users/Administrator/Desktop/www;
  56.             #默认页名称,访问先到访页面
  57.             #index  index.html index.htm;
  58.         }
  59.         #服务端报错后报错编码对应页面。样例:http://nginx.org/50x.html
  60.         error_page   500 502 503 504  /50x.html;
  61.         #报错后识别到域名后面跟了/50x.html,则匹配到根目录root下的html文件夹
  62.         location = /50x.html {
  63.             root   html;
  64.         }
  65.     }
  66. }
复制代码
3、重启

把代码加进配置文件中,在nginx安装路径下实行nginx -t 命令测试配置是否见效。看不懂英文的,翻译软件翻译一下,提示正确,重新加载配置。
  1. #。测试配置是否正确,实际环境中都会先测试一下,再重启弎或重新加载配置
  2. nginx -t
  3. #重新加载配置
  4. nginx -s reload
复制代码

 
4、访问地址测试

访问ip地址、域名可访问到署理配置对应的地址。



 
八、负载均衡

 
1、克隆

为了演示,要再加2台服务器,这边从原来演示的那一台假造机服务器再克隆两台。





按照上面的流程,再克隆一台出来

2、启动服务器

把3台服务器都启动,并查看ip(记一下,背面要用)。



 
3、修改新增的两台服务nginx.conf配置

1)新增的两台服务器配置

一个台服务器配一个server就行,记得修改一下路径,让两个服务器的页面不一样。


  1. #默认为1,表示开启一个业务进程。根据服务器核数来配置,一般1个核对应1个进程
  2. worker_processes  1;
  3. #error_log  logs/error.log;
  4. #error_log  logs/error.log  notice;
  5. #error_log  logs/error.log  info;
  6. events {
  7.         #单个业务进程可接受连接数
  8.     worker_connections  1024;
  9. }
  10. http {
  11.         #引入http mime类型,引入在conf文件下的mime.types文件,让浏览器知道识别文件后缀名后该如何展示
  12.     include       mime.types;
  13.         #如果mime类型没匹配上,默认使用二进制流的方式传输。
  14.     default_type  application/octet-stream;
  15.         #使用高效网络传输,也就是数据0拷贝,直接传输数据。未开启sendfile
  16.     sendfile        on;
  17.     #保持链接时间
  18.     keepalive_timeout  65;
  19.    
  20.     #vhost虚拟主机-1
  21.     server {
  22.         #监听端口号
  23.         listen       80;
  24.         #主机名\域名,空格后面可以再接一个域名,支持正则,不同域名后缀也可以。
  25.         server_name  localhost;
  26.         #匹配路径url,样例:http://nginx.org/en/download.html
  27.         location / {
  28.             #proxy_pass代理其它域名网址,proxy_pass和root只能二选一。
  29.             #proxy_pass https://www.bilibili.com;
  30.             
  31.             #文件根目录,相对于nginx安装根目录路径
  32.             root   C:/Users/Administrator/Desktop/www;
  33.             #默认页名称,访问先到访页面
  34.             index  index.html index.htm;
  35.         }
  36.         #服务端报错后报错编码对应页面。样例:http://nginx.org/50x.html
  37.         error_page   500 502 503 504  /50x.html;
  38.         #报错后识别到域名后面跟了/50x.html,则匹配到根目录root下的html文件夹
  39.         location = /50x.html {
  40.             root   html;
  41.         }
  42.     }
  43. }
复制代码
2)启动nginx并查看页面

启动成功后,去浏览器访问新的两个服务器ip。


4、原服务器配置负载均衡

1)自动轮询nginx.conf代码配置

轮番访问每个服务器

  1. #默认为1,表示开启一个业务进程。根据服务器核数来配置,一般1个核对应1个进程
  2. worker_processes  1;
  3. #error_log  logs/error.log;
  4. #error_log  logs/error.log  notice;
  5. #error_log  logs/error.log  info;
  6. events {
  7.         #单个业务进程可接受连接数
  8.     worker_connections  1024;
  9. }
  10. http {
  11.         #引入http mime类型,引入在conf文件下的mime.types文件,让浏览器知道识别文件后缀名后该如何展示
  12.     include       mime.types;
  13.         #如果mime类型没匹配上,默认使用二进制流的方式传输。
  14.     default_type  application/octet-stream;
  15.         #使用高效网络传输,也就是数据0拷贝,直接传输数据。未开启sendfile
  16.     sendfile        on;
  17.     #保持链接时间
  18.     keepalive_timeout  65;
  19.        
  20.         #负载均衡服务器定义
  21.         upstream  asd{
  22.         server 192.168.222.131;
  23.         server 192.168.222.132;
  24.         }
  25.    
  26.     #vhost虚拟主机-1
  27.     server {
  28.         #监听端口号
  29.         listen       80;
  30.         #主机名\域名,空格后面可以再接一个域名,支持正则,不同域名后缀也可以。
  31.         server_name  www.lingran.website;
  32.         #匹配路径url,样例:http://nginx.org/en/download.html
  33.         location / {
  34.             #proxy_pass代理其它域名网址,proxy_pass和root只能二选一。
  35.             proxy_pass http://asd;
  36.             
  37.             #文件根目录,相对于nginx安装根目录路径
  38.             #root   C:/Users/Administrator/Desktop/www;
  39.             #默认页名称,访问先到访页面
  40.             #index  index.html index.htm;
  41.         }
  42.         #服务端报错后报错编码对应页面。样例:http://nginx.org/50x.html
  43.         error_page   500 502 503 504  /50x.html;
  44.         #报错后识别到域名后面跟了/50x.html,则匹配到根目录root下的html文件夹
  45.         location = /50x.html {
  46.             root   html;
  47.         }
  48.     }
  49. }
复制代码
2)测试

访问服务器ip,能轮番访问到两个新增服务器的页面


3)权重轮询(weight)

weight:默以为1.weight越大,负载的权重就越大,按分配的权重比例分配访问次数。

  1. #默认为1,表示开启一个业务进程。根据服务器核数来配置,一般1个核对应1个进程
  2. worker_processes  1;
  3. #error_log  logs/error.log;
  4. #error_log  logs/error.log  notice;
  5. #error_log  logs/error.log  info;
  6. events {
  7.         #单个业务进程可接受连接数
  8.     worker_connections  1024;
  9. }
  10. http {
  11.         #引入http mime类型,引入在conf文件下的mime.types文件,让浏览器知道识别文件后缀名后该如何展示
  12.     include       mime.types;
  13.         #如果mime类型没匹配上,默认使用二进制流的方式传输。
  14.     default_type  application/octet-stream;
  15.         #使用高效网络传输,也就是数据0拷贝,直接传输数据。未开启sendfile
  16.     sendfile        on;
  17.     #保持链接时间
  18.     keepalive_timeout  65;
  19.        
  20.         #upstream负载均衡服务器定义,weight权重分配
  21.         upstream  asd{
  22.         server 192.168.222.131 weight=8;
  23.         server 192.168.222.132 weight=2;
  24.         }
  25.    
  26.     #vhost虚拟主机-1
  27.     server {
  28.         #监听端口号
  29.         listen       80;
  30.         #主机名\域名,空格后面可以再接一个域名,支持正则,不同域名后缀也可以。
  31.         server_name  www.lingran.website;
  32.         #匹配路径url,样例:http://nginx.org/en/download.html
  33.         location / {
  34.             #proxy_pass代理其它域名网址,proxy_pass和root只能二选一。
  35.             proxy_pass http://asd;
  36.             
  37.             #文件根目录,相对于nginx安装根目录路径
  38.             #root   C:/Users/Administrator/Desktop/www;
  39.             #默认页名称,访问先到访页面
  40.             #index  index.html index.htm;
  41.         }
  42.         #服务端报错后报错编码对应页面。样例:http://nginx.org/50x.html
  43.         error_page   500 502 503 504  /50x.html;
  44.         #报错后识别到域名后面跟了/50x.html,则匹配到根目录root下的html文件夹
  45.         location = /50x.html {
  46.             root   html;
  47.         }
  48.     }
  49. }
复制代码
4)down和backup

1.down:
是在upstream负载均衡服务器界说中,对其中的服务器做下线标志,不过不怎么用,一般想要下线服务器直接解释掉就行。
  1.         #upstream负载均衡服务器定义,weight权重分配
  2.         upstream  asd{
  3.         server 192.168.222.131 weight=8 down;
  4.         server 192.168.222.132 weight=2;
  5.         }
复制代码
2.backup:
是在upstream负载均衡服务器界说中,界说这个服务器是待机服务器,只有其他服务器全宕了,才会用到待机服务器。
  1.         #upstream负载均衡服务器定义,weight权重分配
  2.         upstream  asd{
  3.         server 192.168.222.131 weight=8;
  4.         server 192.168.222.132 weight=2;
  5.         server 192.168.222.132 weight=2 backup;
  6.         }
复制代码
5)不常用(ip_hash、least_conn、url_hash、fair)

1.ip_hash
   根据客户端的ip地址转发同一台服务器,可以保持会话。条件是用户ip没有发生更改。    假如须要暂时删除其中一台服务器,则应用为了保留客户端 IP 地址,只能标志 down 。
  1.         #upstream负载均衡服务器定义,weight权重分配
  2.         upstream  asd{
  3.     #保持同一个地址访问同一个服务器
  4.     ip_hash;
  5.         server 192.168.222.131 weight=8;
  6.         server 192.168.222.132 weight=2;
  7.         server 192.168.222.132 weight=2 down;
  8.         }
复制代码
 
2.least_conn
指定组应使用负载平衡方法,其中请求传递到活动连接数最少的服务器, 考虑到服务器的权重。 假如有多个这样的服务器,则使用加权循环平衡法。
 
选择活跃连接数与权重weight的比值最小者为下一个处理请求的server。前次已选的server和已达到最大连接数的server的不在选择范围。
加权循环平衡法
如一个upstream有三台server:
  1. #upstream负载均衡服务器定义,weight权重分配
  2. upstream aaa {
  3.     #选取活跃连接数与权重weight的比值最小者为下一个处理请求的server
  4.     least_conn;
  5.         server 192.168.222.131 weight=8;
  6.         server 192.168.222.132 weight=2;
  7.         server 192.168.222.132 weight=2;
  8. }
复制代码
如上一个请求选择了第二台192.168.222.132,下一个请求到来,通过比力剩下可用的server的conns(连接数)/weight的值,决定哪一台。
假如192.168.222.131连接数为40,192.168.222.133连接数为8,权重分别是8和2,盘算结果
192.168.222.131:40/8=5
192.168.222.132:8/2=4
因为 5 > 4,因为192.168.222.132的最小且链接数未满,所以选择192.168.222.132而不选192.168.222.131。尽管连接数192.168.222.131要大于192.168.222.132。
3.url_hash
   定向流量转发,根据用户访问的url定向转发请求,主要用于访问固定位置的资源,如下载文件     
  1. #upstream负载均衡服务器定义,weight权重分配
  2. upstream aaa {
  3.     #主要用于访问固定位置的资源,如下载文件
  4.     hash $request_uri;
  5.         server 192.168.222.131 weight=8;
  6.         server 192.168.222.132 weight=2;
  7.         server 192.168.222.132 weight=2;
  8. }
复制代码
4.fair
   根据后端服务器相应时间转发请求,基于每个后端服务器的相应时间和连接数来动态调整权重     
  1. #upstream负载均衡服务器定义,weight权重分配
  2. upstream aaa {
  3.     fair;
  4.         server 192.168.222.131 weight=8;
  5.         server 192.168.222.132 weight=2;
  6.         server 192.168.222.132 weight=2;
  7. }
复制代码
 
九、动静分离

将 css、img、js等这些配置文件,放到nginx服务器上,不消放在背面的服务器上。
1、普通配置

 

  1. #默认为1,表示开启一个业务进程。根据服务器核数来配置,一般1个核对应1个进程
  2. worker_processes  1;
  3. #error_log  logs/error.log;
  4. #error_log  logs/error.log  notice;
  5. #error_log  logs/error.log  info;
  6. events {
  7.         #单个业务进程可接受连接数
  8.     worker_connections  1024;
  9. }
  10. http {
  11.         #引入http mime类型,引入在conf文件下的mime.types文件,让浏览器知道识别文件后缀名后该如何展示
  12.     include       mime.types;
  13.         #如果mime类型没匹配上,默认使用二进制流的方式传输。
  14.     default_type  application/octet-stream;
  15.         #使用高效网络传输,也就是数据0拷贝,直接传输数据。未开启sendfile
  16.     sendfile        on;
  17.     #保持链接时间
  18.     keepalive_timeout  65;
  19.        
  20.         #负载均衡服务器定义
  21.         upstream  asd{
  22.         server 192.168.222.131;
  23.         server 192.168.222.132;
  24.         }
  25.    
  26.     #vhost虚拟主机-1
  27.     server {
  28.         #监听端口号
  29.         listen       80;
  30.         #主机名\域名,空格后面可以再接一个域名,支持正则,不同域名后缀也可以。
  31.         server_name  www.lingran.website;
  32.         #匹配路径url,样例:http://nginx.org/en/download.html
  33.         location / {
  34.             #proxy_pass代理其它域名网址,proxy_pass和root只能二选一。
  35.             proxy_pass http://asd;
  36.             
  37.             #文件根目录,相对于nginx安装根目录路径
  38.             #root   C:/Users/Administrator/Desktop/www;
  39.             #默认页名称,访问先到访页面
  40.             #index  index.html index.htm;
  41.         }
  42.         #配置css,到root后面的路径,匹配css
  43.         location /css {
  44.             
  45.             #文件根目录,相对于nginx安装根目录路径
  46.             root   C:/Users/Administrator/Desktop/www;
  47.             index  index.html index.htm;
  48.         }
  49.         #配置js,到root后面的路径,匹配js
  50.         location /js {
  51.             
  52.             #文件根目录,相对于nginx安装根目录路径
  53.             root   C:/Users/Administrator/Desktop/www;
  54.             index  index.html index.htm;
  55.         }
  56.         #服务端报错后报错编码对应页面。样例:http://nginx.org/50x.html
  57.         error_page   500 502 503 504  /50x.html;
  58.         #报错后识别到域名后面跟了/50x.html,则匹配到根目录root下的html文件夹
  59.         location = /50x.html {
  60.             root   html;
  61.         }
  62.     }
  63. }
复制代码
2、正则配置

正则基本用法要有一些相识

  1. #默认为1,表示开启一个业务进程。根据服务器核数来配置,一般1个核对应1个进程
  2. worker_processes  1;
  3. #error_log  logs/error.log;
  4. #error_log  logs/error.log  notice;
  5. #error_log  logs/error.log  info;
  6. events {
  7.         #单个业务进程可接受连接数
  8.     worker_connections  1024;
  9. }
  10. http {
  11.         #引入http mime类型,引入在conf文件下的mime.types文件,让浏览器知道识别文件后缀名后该如何展示
  12.     include       mime.types;
  13.         #如果mime类型没匹配上,默认使用二进制流的方式传输。
  14.     default_type  application/octet-stream;
  15.         #使用高效网络传输,也就是数据0拷贝,直接传输数据。未开启sendfile
  16.     sendfile        on;
  17.     #保持链接时间
  18.     keepalive_timeout  65;
  19.        
  20.         #负载均衡服务器定义
  21.         upstream  asd{
  22.         server 192.168.222.131;
  23.         server 192.168.222.132;
  24.         }
  25.    
  26.     #vhost虚拟主机-1
  27.     server {
  28.         #监听端口号
  29.         listen       80;
  30.         #主机名\域名,空格后面可以再接一个域名,支持正则,不同域名后缀也可以。
  31.         server_name  www.lingran.website;
  32.         #匹配路径url,样例:http://nginx.org/en/download.html
  33.         location / {
  34.             #proxy_pass代理其它域名网址,proxy_pass和root只能二选一。
  35.             proxy_pass http://asd;
  36.             
  37.             #文件根目录,相对于nginx安装根目录路径
  38.             #root   C:/Users/Administrator/Desktop/www;
  39.             #默认页名称,访问先到访页面
  40.             #index  index.html index.htm;
  41.         }
  42.         #~表示要使用正则了,*表示不区分大小写,|隔开今写多个
  43.         location ~*/(css|js|img) {
  44.             #这三个静态文件夹css、js、img,要在下面的路径里
  45.             root   C:/Users/Administrator/Desktop/www;
  46.             index  index.html index.htm;
  47.         }
  48.         #服务端报错后报错编码对应页面。样例:http://nginx.org/50x.html
  49.         error_page   500 502 503 504  /50x.html;
  50.         #报错后识别到域名后面跟了/50x.html,则匹配到根目录root下的html文件夹
  51.         location = /50x.html {
  52.             root   html;
  53.         }
  54.     }
  55. }
复制代码
 
十、UrlRewrite

1、参数详情

地址重写,用户得到的都是经过处理后的URL地址。
  1. #样例
  2. rewrite ^/([0-9]+).html$ /index.jsp?pageNum=$1 break;
复制代码

   rewrite     <regex>     <replacement>     [flag];
关键字         正则         替换内容         flag标志
  
关键字:关键字rewrite不能改变
正则:正则表达式语句进行规则匹配
替换内容:将正则匹配的内容更换成replacement
  
flag标志阐明:
  1、last
本条规则匹配完成后,继续向下匹配新的location URI规则
2、break
本条规则匹配完成即制止,不再匹配背面的任何规则
  3、redirect
返回302暂时重定向,浏览器地址会显示跳转后的URL地址
  4、permanent
返回301永久重定向,浏览器地址栏会显示跳转后的URL地址
   
2、nginx.conf配置

 

  1. #默认为1,表示开启一个业务进程。根据服务器核数来配置,一般1个核对应1个进程
  2. worker_processes  1;
  3. #error_log  logs/error.log;
  4. #error_log  logs/error.log  notice;
  5. #error_log  logs/error.log  info;
  6. events {
  7.         #单个业务进程可接受连接数
  8.     worker_connections  1024;
  9. }
  10. http {
  11.         #引入http mime类型,引入在conf文件下的mime.types文件,让浏览器知道识别文件后缀名后该如何展示
  12.     include       mime.types;
  13.         #如果mime类型没匹配上,默认使用二进制流的方式传输。
  14.     default_type  application/octet-stream;
  15.         #使用高效网络传输,也就是数据0拷贝,直接传输数据。未开启sendfile
  16.     sendfile        on;
  17.     #保持链接时间
  18.     keepalive_timeout  65;
  19.        
  20.         #负载均衡服务器定义
  21.         upstream  asd{
  22.         server 192.168.222.131;
  23.         server 192.168.222.132;
  24.         }
  25.    
  26.     #vhost虚拟主机-1
  27.     server {
  28.         #监听端口号
  29.         listen       80;
  30.         #主机名\域名,空格后面可以再接一个域名,支持正则,不同域名后缀也可以。
  31.         server_name  www.lingran.website;
  32.         #匹配路径url,样例:http://nginx.org/en/download.html
  33.         location / {
  34.             #样例
  35.             rewrite ^/([0-9]+).html$ /index.jsp?pageNum=$1 break;
  36.             proxy_pass http://asd;
  37.         }
  38.         #~表示要使用正则了,*表示不区分大小写,|隔开今写多个
  39.         location ~*/(css|js|img) {
  40.             #这三个静态文件夹css、js、img,要在下面的路径里
  41.             root   C:/Users/Administrator/Desktop/www;
  42.             index  index.html index.htm;
  43.         }
  44.         #服务端报错后报错编码对应页面。样例:http://nginx.org/50x.html
  45.         error_page   500 502 503 504  /50x.html;
  46.         #报错后识别到域名后面跟了/50x.html,则匹配到根目录root下的html文件夹
  47.         location = /50x.html {
  48.             root   html;
  49.         }
  50.     }
  51. }
复制代码
3、效果



 
十一、报错

1、[error] OpenEvent("Global\ngx_reload_3220")


  1. nginx: [error] OpenEvent("Global\ngx_reload_3220") failed (2: The system cannot find the file specified)
复制代码
命令窗口权限不足,以管理员权限打开命令窗口实行即可
 
现在这到这了
 

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

涛声依旧在

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表