nginx负载均衡的配置文件说明

来源:互联网 发布:徐老师的淘宝店网址 编辑:程序博客网 时间:2024/06/06 01:40
1
 vim /usr/local/nginx/conf/nginx.conf
 

2.1、添加"proxy_set_header"指令
编辑Nginx配置文件,在"http"字段内添加相应代码,发送发送真实IP到后端。

1
 vim /usr/local/nginx/conf/nginx.conf
 

1 2 3 4 5 6
 # 向后端服务器发起请求时添加指定的header头信息 proxy_set_header Host $host; # 向后端服务器发送真实 IP proxy_set_header X-Real-IP $remote_addr; #让后端如php能直接通过变量获取真实IP proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 

2.2、添加"proxy_pass"指令
在相应 ”location" 字段添加如下反向代理语句。这部分是难点,也是国内教程都没有提及的地方。

方法一:
将所有请求都转发给后端 apache 处理,但由于 "~*" 优先级高于 "/" ,所以图片、JS、CSS例外,"expires" 用于设置缓存时间。

1 2 3 4 5 6 7 8 9 10 11
 location / { proxy_pass http://127.0.0.1:8080; } location ~* /.(jpg|jpeg|gif|png)$ { access_log off; expires 30d; } location ~* /.(js|css)$ { access_log off; expires 1d; }
 

方法二:
只将.php后缀的文件,交由后端 apache 处理

1 2 3
 location ~ /.php$ { proxy_pass http://127.0.0.1:8080; }
 

2.3、添加高级选项(选做)
#请求连接后端服务器超时时间。即在规定时间,后端必须响应前端握手请求。
proxy_connect_timeout 30;

#后端服务器响应时间。即连接成功,在后端排队等候处理不能超过的时间。
proxy_read_timeout 60;

#后端数据回传时间。即在规定时间,后端服务器必须将所有数据回传完毕。
proxy_send_timeout 30;

#从后端服务器读取的头信息的缓冲区大小。
proxy_buffer_size 4k;

#从后端服务器读取的头信息的缓冲区数目和大小
proxy_buffers 4 32k;

如果服务器繁忙,可申请的proxy_buffers大小
proxy_busy_buffers_size 64k;

#代理缓存临时文件大小
proxy_temp_file_write_size 64k;

#代理最大缓存临时文件大小
proxy_max_temp_file_size 128m;







Nginux HTTP Upstream 模块为后端的服务器提供简单的负载均衡,有以下几种分配方式:

 

1、轮询(默认)

每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。

 

2、weight

指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。

 

3、ip_hash

每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。

 

4、fair(第三方)

按后端服务器的响应时间来分配请求,响应时间短的优先分配。

 

5、url_hash(第三方)

按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。

 

 

设备状态:

Weight=NUMBER
 设置服务器的权重,权重数值越高,被 分配到客户端的请求次数越多,默认值为1
 
Max_fails=BUMBER
 在参数fail_timeout指定时间内对后端服务器请求失改的次数,如果检测到后端服务器无法连接及发生服务器错误(404错误除外),则标记为失改。如果没有设置,则默认值为1,设置为0将关闭这项检查。
 
Tail_timeout=TIME
 在经历参数max_fails设置的失改次数后,暂停的时间。
 
Down
 标记服务器为永久离线状态,用于ip_hash命令。
 
Backup
 仅在非backup服务器全部宕机或繁忙的时候才启用,这台服务器的负载会最轻。
原创粉丝点击