1、启动
- 双击nginx.exe文件
- 进入nginx定制开发定制开发定制开发定制开发安装路径下执行
start nginx
命令 - 定制开发浏览器输入,即可看到nginx欢迎页
2、nginx停止
进入nginx安装路径下执行nginx -s stop
命令
3、nginx定制开发重新载入配置
进入nginx安装路径下执行 nginx.exe -s reload
命令
注意:定制开发每次修改配置文件都需要执行
4、nginx定制开发检查配置是否正确
进入nginx安装路径下执行 nginx -t
命令
定制开发出现如下结果则证明配置正确
5、Nginx配置实例
5.1、反向代理
定制开发随着单个服务器远远不定制开发能满足需求时,定制开发就出现了一个新名词:分布式部署;
也就是通过部署多台服务器来解决访问人数限制的问题;x宝网站中大部分功能也是直接使用nginx进行反向代理实现的。
5.1.1、修改nginx.conf配置文件
server { listen 9001; server_name localhost; location ^~ /ser/ { proxy_pass http://192.168.10.xxx:xxx/; } }
- 1
- 2
- 3
- 4
- 5
- 6
- 7
参数说明:
1、listen:nginx监听的端口
1、server_name:nginx服务的ip地址或者域名
3、location:配置路由访问信息
location 配置参数:
1、 = :用于不含正则表达式的 uri 前,要求请求字符串与 uri 严格匹配,如果匹配
成功,就停止继续向下搜索并立即处理该请求。
2、 ~:用于表示 uri 包含正则表达式,并且区分大小写。
3、 ~*:用于表示 uri 包含正则表达式,并且不区分大小写。
4、 ^~:用于不含正则表达式的 uri 前,要求 Nginx 服务器找到标识 uri 和请求字符串匹配度最高的 location 后,立即使用此 location 处理请求,而不再使用 location块中的正则 uri 和请求字符串做匹配。
注意:如果 uri 包含正则表达式,则必须要有~ 或者 ~*标识。
5.1.2、反向代理测试
浏览器输入:http://localhost:9001/ser/
nginx会将请求分发至代理服务器,完成请求应答。
5.1.3、proxy_pass末尾带斜杠/和不带的区别
- proxy_pass末尾有斜杠 / ,proxy_pass不拼接location的路径
location /api/ {proxy_pass http://127.0.0.1:8000/;}
- 1
- 2
- 3
请求地址:http://localhost/api/test
转发地址:http://127.0.0.1:8000/test
- proxy_pass末尾无斜杠 / ,proxy_pass会拼接location的路径
location /api/ {proxy_pass http://127.0.0.1:8000;}
- 1
- 2
- 3
请求地址:http://localhost/api/test
转发地址:http://127.0.0.1:8000/api/test
5.2、负载均衡
在 nginx 配置文件中进行负载均衡的配置
- 在http中添加 upstream ,在upstream 中添加服务列表,设置负载均衡策略
- 在location 中指定upstream 名称
http { ..... upstream myservere { server 192.168.10.196:8001 weight=1; server 192.168.10.196:8002 weight=5; } server { listen 9001; server_name localhost; location / { proxy_pass http://myservere/; } }}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
5.2.1、负载均衡策略
- 轮询(默认)
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器 down 掉,能自动剔除。 - weight
weight 代表权重,默认为 1,权重越高被分配的客户端越多
指定轮询几率, weight 和访问比率成正比,用于后端服务器性能不均的情况。 例如:upstream myservere { server 192.168.10.196:8001 weight=1; server 192.168.10.196:8002 weight=5;}
- 1
- 2
- 3
- 4
- ip_hash
每个请求按访问 ip 的 hash 结果分配,这样每个访客固定访问一个后端服务器,可以解决 session 的问题。 例如:upstream myservere { ip_hash; server 192.168.10.196:8001; server 192.168.10.196:8002;}
- 1
- 2
- 3
- 4
- 5
- fair(第三方)
按后端服务器的响应时间来分配请求,响应时间短的优先分配。upstream myservere { server 192.168.10.196:8001; server 192.168.10.196:8002; fair;}
- 1
- 2
- 3
- 4
- 5
5.3、动静分离
- 动静分离指的是将动态请求和静态请求分隔开,然后分别路由到相应的后端服务器。
- 通常用户的请求中,一部分需要后台程序处理,例如:查询数据库或者进行一些数据运算,这类请求我们称之为动态请求;还有一部分不需要后台程序处理,如请求 css、html、js、图片等静态资源,这类请求我们称之为静态请求。
- Nginx 实现动静分离的基础是它可以根据配置对不同的请求做不同的转发,动静分离有利于提高整个服务器系统的性能。
5.3.1、创建静态资源
- 在nginx根目录下创建static文件夹( 与conf文件夹同级 )
- 在static文件下创建image、css、js等静态资源文件夹
- 在各个静态资源文件下创建静态资源
例如:创建 aa.png 图片
5.3.2、修改配置文件
server { listen 9001; server_name localhost; #拦截静态请求 location /img/ { root static/; autoindex on; } #拦截动态请求 location /ser/ { proxy_pass http://localhost:8001/; } }
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
测试:
请求静态资源:http://localhost:9001/img/image/aa.png
请求动态资源:http://localhost:9001/ser/nginx/getPage