Nginx高级篇:从原理到实战,彻底搞懂Nginx

通过配置 Nginx 配置文件 , 实现正向代理、反向代理、负载均衡、Nginx 缓存、动静分离和高可用 Nginx 6种功能 , 并对 Nginx 的原理作进一步的解析 。当需要使用 Nginx 配置文件时 , 参考本文实例即可 , 建议收藏 。

Nginx高级篇:从原理到实战,彻底搞懂Nginx

文章插图
 
1.%20正向代理  正向代理的代理对象是客户端 。正向代理就是代理服务器替客户端去访问目标服务器 。
1.1%20实战一
实现效果:  在浏览器输入%20www.google.com%20,%20浏览器跳转到www.google.com%20 。具体配置:
server{%20%20%20%20resolver%208.8.8.8;%20%20%20%20listen%2080;%20%20%20%20location%20/%20{%20%20%20%20%20%20%20%20proxy_pass%20http://$http_host$request_uri;%20%20%20%20}}在需要访问外网的客户端上执行以下一种操作即可:
1.%20方法1(推荐)export%20http_proxy=http://你的正向代理服务器地址:代理端口%20%20%202.%20方法2vim%20~/.bashrcexport%20http_proxy=http://你的正向代理服务器地址:代理端口%20%20%202.%20反向代理  反向代理指代理后端服务器响应客户端请求的一个中介服务器 , 代理的对象是服务端 。
2.1%20实战一
实现效果:  在浏览器输入%20www.abc.com%20,%20从%20nginx%20服务器跳转到%20linux%20系统%20Tomcat%20主页面 。具体配置:
%20%20%20%20server%20{%20%20%20%20%20%20%20%20listen%20%20%20%20%20%20%2080;%20%20%20%20%20%20%20%20%20%20%20server_name%20%20192.168.4.32;%20%20%20#监听地址%20%20%20%20%20%20%20%20%20%20%20location%20%20/%20{%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20root%20html;%20%20#/html目录%20%20%20%20%20%20%20%20%20%20%20proxy_pass%20http://127.0.0.1:8080;%20%20#请求转向%20%20%20%20%20%20%20%20%20%20%20index%20%20index.html%20index.htm;%20%20%20%20%20%20#设置默认页%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20}%20%20%20%20%20}2.2%20实战二
实现效果:  根据在浏览器输入的路径不同 , 跳转到不同端口的服务中 。具体配置:
%20%20%20%20server%20{%20%20%20%20%20%20%20%20listen%20%20%20%20%20%20%209000;%20%20%20%20%20%20%20%20%20%20%20server_name%20%20192.168.4.32;%20%20%20#监听地址%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20location%20%20~%20/example1/%20{%20%20%20%20%20%20%20%20%20%20%20%20%20proxy_pass%20http://127.0.0.1:5000;%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20}%20%20%20%20%20%20%20%20%20location%20%20~%20/example2/%20{%20%20%20%20%20%20%20%20%20%20%20%20%20proxy_pass%20http://127.0.0.1:8080;%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20}%20%20%20%20%20}location 指令说明:
  • ~%20: 表示uri包含正则表达式 , 且区分大小写 。
  • ~*%20: 表示uri包含正则表达式 , 且不区分大小写 。
  • =%20: 表示uri不含正则表达式 , 要求严格匹配 。
3%20负载均衡3.1%20实战一
实现效果:  在浏览器地址栏输入%20http://192.168.4.32/example/a.html%20 , 平均到%205000%20和%208080%20端口中 , 实现负载均衡效果 。具体配置:
%20%20%20%20upstream%20myserver%20{%20%20%20%20%20%20%20%20%20server%20192.167.4.32:5000;%20%20%20%20%20%20server%20192.168.4.32:8080;%20%20%20%20}%20%20%20%20%20%20%20%20server%20{%20%20%20%20%20%20%20%20listen%20%20%20%20%20%20%2080;%20%20%20#监听端口%20%20%20%20%20%20%20%20server_name%20%20192.168.4.32;%20%20%20#监听地址%20%20%20%20%20%20%20%20%20%20%20location%20%20/%20{%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20root%20html;%20%20#html目录%20%20%20%20%20%20%20%20%20%20%20index%20index.html%20index.htm;%20%20#设置默认页%20%20%20%20%20%20%20%20%20%20%20proxy_pass%20%20http://myserver;%20%20#请求转向%20myserver%20定义的服务器列表%20%20%20%20%20%20%20%20%20%20%20%20%20%20}%20%20%20%20%20}nginx%20分配服务器策略