1、准备
负载均衡服务器IP地址:10.0.0.200
web服务器1IP地址:10.0.0.201
web服务器2IP地址:10.0.0.202
备注:域名test.load.balance.com解析解析到 负载均衡 10.0.0.200 这台服务器上
2、负载均衡服务器配置
# 定义 upstream 服务池
upstream test_load_balance {
server 10.0.0.201:80;
server 10.0.0.202:80;
}
server {
listen 80;
server_name test.load.balance.com;
location / {
proxy_pass http://test_load_balance;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# Nginx代理与后端服务器连接超时时间设置,默认 60s
proxy_connect_timeout 60s;
# Nginx代理等待后端服务器的响应时间,默认 60s
proxy_read_timeout 60s;
# 后端服务器数据返回给Nginx代理超时时间设置,默认 60s
proxy_send_timeout 60s;
proxy_buffering on;
proxy_buffer_size 8k;
proxy_buffers 8 128k;
proxy_http_version 1.1;
# 如果后台服务连接超时,Nginx是本身是有机制的,如果出现一个节点down掉的时候,Nginx会更据你具体负载均衡的设置,将请求
转移到其他的节点上,但是,如果后台服务连接没有down掉,但是返回错误异常码了如:504、502、500,这个时候你需要加一个负载均衡的设置
# proxy_next_upstream http_500 | http_502 | http_503 | http_504 |http_404;
# 意思是,当其中一台返回错误码404,500...等错误时,可以分配到下一台服务器程序继续处理,提高平台访问成功率。
proxy_next_upstream error timeout http_500 http_502 http_503 http_504;
}
}
3、web1服务器配置:
server {
listen 80;
server_name test.load.balance.com;
location / {
root /code/load_balance;
index index.html index.htm;
}
}
4、web2服务器配置
server {
listen 80;
server_name test.load.balance.com;
location / {
root /code/load_balance;
index index.html index.htm;
}
}