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