nginx学习总结五(nginx反向代理)

2019-10-17 21:09:06于海丽

index index.htm index.html index.php;
}
//下面是第二个域名,使用mysrv的代理,访问www.sum.com/message目录下的
server {
listen 80;
server_name www.sum.com;
location /message {
proxy_pass http://mysrv;
proxy_set_header Host $host;
// 访问这个域名的,只有mysrv 本机可以访问
}
//访问除了/message之外的www.sum.com/ 地址,
location / {
proxy_pass http://mysrv;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;

下面的配置,与上面错误返回的效果相同,这里可以不写。

error_page 500 502 503 504 /50x.html;
location = /50x.html
{
root html;
}

2、Nginx负载均衡指令
Nginx属于软件的七层负载均衡(lvs是软件的四层负载均衡的代表),七层负载均衡软件还有L7SW(Layer7 switching)、HAProxy等。支持负载均衡的模块是Http Upstream。下面介绍此模块及他下面的几个指令
HTTP Upstream模块
(1)ip_hash指令
当对后端的多台动态应用服务器做负载均衡时,ip_hash指令将某个客户端IP的请求通过哈希算法定位到同一台后端服务器上。这样,当来自某ip用户在Sever A上登录后,再访问该站点的其他URL时,能保证访问仍在Server A上。如果不加ip_hash,加入用户在Server A上登录,再访问该站点其他URL,就有可能跳转到后端的Sever B、C…..,而session记录在A上,B、C上没有,就会提示用户未登录。
注意:但这种访问不能保证后端服务器的负载均衡,可能后端有些server接受到的请求多,有些server接受的少,设置的权重值不起作用。
建议如果后端的动态应用程序服务器能做到session共享,而不用nginx上配置ip_hash的方式。

upstream mysrv {
ip_hash;
server 192.168.0.110:80 weight=2;
server 127.0.0.1:8000 down;
server 192.168.0.212:80 weight=8;
}

(2)server指令
该指令用语指定后端服务器的名称和参数。服务器的名称可以是一个域名,一个ip,端口号或UNIX Socket。

参数介绍:
weight=number : 设置服务器权重,权重值越高,被分配到客户端请求数越多。默认为1;
max_fails=numbser : 在fail_timeout指定的时间内对后端服务器请求失败的次数,如果检测到后端服务器无法连接及发生错误(404除外),则标记为失败。如果没有设置,默认为1。设置为0则关闭这项检查。
fail_timeout=time : 在经历参数max_fails设置的失败次数后,暂停的时间。
down : 表示服务器为永久离线状态。
Backup : 仅仅在非backup服务器全部down或繁忙的时候才启用。
配置如下:

upstream mysrv {
ip_hash;
server www.xywy.com weight=2;
server 127.0.0.1:8000 down;
server 192.168.0.212:80 max_fails=3 fail_timeout=30s;
server unix:/tmp/bakend3;