nginx常用配置参数介绍-upstream

nginx常用配置参数upstream,主要用于均衡后端多个实例
nginx的upstream支持五种算法分配方式
1.轮询(默认rr)
每个请求按时间顺序逐一分配到后端不同的服务器,如果后端某台服务器down掉,自动剔除,待恢复自动添加上
2.weight权重
指定轮询权重,权重越高处理的请求就越多,weight和访问比率成正比,用于后端服务器性能不均的情况
2.ip hash
每个请求根据访问的ip的hash结果分配,这样每个访客固定访问同一个后端服务器,可以解决sesion的问题,一般用于登录会话
//这样是随机分配的,分配是不均的
4.fair(第三方)
按后端服务器的响应时间来分配请求,响应时间短的优先分配
5.url hash(第三方)
例如:

 upstream testproxys{
        server  172.20.22.36:50001 weight=1 max_fails=2 fail_timeout=30s;         
        server  172.20.21.41:50001 weight=1 max_fails=2 fail_timeout=30s;
   }
Upstream 的fail_timeout和max_fails参数是用来判断负载均衡upstream中某个server是否失效
// max_fails=2 fail_timeout=30s
在30s与该服务连接尝试失败了两次,则认为该服务已经失效,在接下来30s内,nginx不会将请求分发给失效的服务
失效时间与响应时间无关,不会影响响应时间
查看nginx当前连接数,服务接收的请求,并发数,和状态等信息
设定查看nginx状态的地址
Location /NginxStatus {
     stub_status  on;
}
查看方法
直接在浏览器输入server_name/NginxStatus 即可查看//www.ceshi.com/NginxStatus
例如:
   upstream testproxys{
        server 172.20.22.36:50001;
        server 172.20.21.41:50001;
   }
   server {
         listen       8887;
         server_name www.ceshi.com;  #可以通过域名进行请求
         location / {

    #后端的web服务器可以通过X-Forwarded-For获取用户真实ip
                proxy_pass  http://testproxys;      #请求转向后端定义的均衡模块,这个配置就是upstream testproxys,直接找到location/根目录下的proxy_pass,反向代理
                proxy_set_header Host $host;
                proxy_set_header X-Real-IP  $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
         }
     Location /NginxStatus {
                  stub_status  on;
    }
  }
//location日志说明

$remote_addr, $proxy_add_x_forwarded_for;记录客户端ip,
//$proxy_add_x_forwarded_for#相当于转发,获取客户端ip
$remote_user;记录客户端用户名称

补充一个动静分离
nginx分离动态请求和静态请求,nginx处理静态页面,tomcat、resin处理动态页面。
动静分离可大致分为两种:
    1.纯粹把静态文件独立成单独的域名,放在独立的服务器上
    2.动态和静态放在一起发布,通过nginx分离
Nginx可以做到动静分离:请求静态页面(图片)都走本地,动态页面,jsp走后端

 

其他需要知道的
nginx虚拟主机:就是有多少个servername,配置了多少个服务
nginx仅支持http协议,不支持tcp均衡,但可以打补丁,做到tcp,类似于upstream,就是在外面在包装一个tcp

 

posted @ 2019-09-30 11:25  默晓梦  阅读(2116)  评论(0编辑  收藏  举报