1.反向代理:是nginx代理所有的服务器。而正向代理是vpn代理客户端!!
反向代理是配置 proxy_pass 可以只配置一个地址如 :
proxy_pass http://127.0.0.1:8081;
也可以配置多个
2.那就是负载均衡
定义负载均衡服务器:
upstream myserver { server 192.168.12.127:8080; server 192.168.12.127:8081; }
修改proxy_pass
proxy_pass http://myserver;
这样就实现了 反向代理 (proxy_pass)+ 负载均衡(upstream)
Nginx的概念
Win下nginx的常用命令
nginx配置文件
1. 实现效果:监听9000端口。根据不同的路径跳转到不同的端口服务中
2. 准备工作
准备好两个服务器:8080和8081
在8080tomcat的webapps里面添加一个shisan01文件夹,编写一个shisan.html。内容自己定就好,同理8081也是一样,添加一个shisan02文件夹,编写一个shisan.html。跑完之后访问不同的服务测试
3. 前往nginx配置文件配置
进入配置文件,如下配置
server { listen 9000; server_name 192.168.12.127; location ~/shisan01/ { proxy_pass http://127.0.0.1:8080; } location ~/shisan02/ { proxy_pass http://127.0.0.1:8081; } }
PS:注意要记得开发端口号:8080 8081 9000
PS:location的指令可以百度了解一下
1. 准备工作
同样是两个tomcat(8080和8081)服务器,当然要是你真有两台服务器最好!哈哈哈。条件问题还是模拟。
在两个服务器里面的webapps里面创建一个shisan文件夹,在shisan文件夹里创建一个shisan.html,添加内容自己定就好
2. 在nginx配置文件中修改配置
在http块中配置
upstream myserver { server 192.168.12.127:8080; server 192.168.12.127:8081; } server { listen 80; server_name 192.168.12.127; location / { proxy_pass http://myserver; root html; index index.html index.htm; } }
3. nginx分配服务器的策略
轮询:默认策略;每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除
权重:指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。
upstream myserver { server 192.168.12.127:8080 weight=10; server 192.168.12.127:8081 weight=5; }
IP绑定 ip_hash:每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题
upstream myserver { ip_hash; server 192.168.12.127:8080; server 192.168.12.127:8081; }
fair:按后端服务器的响应时间来分配请求,响应时间短的优先分配。
upstream backserver { server 192.168.12.127:8080; server 192.168.12.127:8081; fair; }
url_hash:按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。
1. 准备工作
弄好一个动态资源一个静态资源:比如
2. 配置nginx文件
server { listen 80; server_name 192.168.12.127; location /html/ { root /shisan/; index index.html index.htm; } location /image/ { root /shisan/; autoindex on; // 列出文件的目录,可以自行观看对比就知道 } }
1. 因为我这里环境不允许,可以参考这个文章
语法规则: location [=||*|^~] /uri/ {… }
首先匹配 =,其次匹配^~,其次是按文件中顺序的正则匹配,最后是交给 /通用匹配。当有匹配成功时候,停止匹配,按当前匹配规则处理请求。
比这些 location 规则来选择一个 location,对比的顺序可以总结为:
如下是一些 location 配置的例子,用来详细描述上面所说的处理顺序,你也可以按照具体实际情况来修改这些例子.
location = / { # 只处理请求 /. }
location /data/ { # 所有以 /data/ 匹配,但是还会继续搜索. # 如果没有其他 location 匹配上,就用这个处理请求. }
location ^~ /img/ { # 所有以 /img/ 开头的请求并且会停止搜索. }
location ~* .(png|gif|ico|jpg|jpeg)$ { # 以png, gif, ico, jpg ,jpeg结尾的请求. # 如果请求是到 /img/ 路径的话 还是会被上面