Nginx的反向代理与负载均衡能力相当优秀,而且配置也相对简单,假设后端有3台Tomcat服务器作为集群,其配置的关键部分如下:
......
events {
......
}
http {
......
upstream tomcat_server_pool {
server 192.168.0.11:8080 weight=1 max_fails=2 fail_timeout=30s;
server 192.168.0.12:8080 weight=1 max_fails=2 fail_timeout=30s;
server 192.168.0.13:8080 weight=1 max_fails=2 fail_timeout=30s;
}
server {
listen 80;
server_name localhost;
access_log logs/host.access.log main;
location / {
# 如果后端服务器返回502,504或超时等错误,自动将请求转发到其它服务器,实现故障转移
proxy_next_upstream http_502 http_504 error timeout invalid_header;
proxy_pass http://tomcat_server_pool;
proxy_set_header Host localhost;
proxy_set_header X-Forward-For $remote_addr;
}
......
}
......
}