Nginx 反向代理配置多个域名指向不同IP(端口)
如下是服务器部署:
- 代理服务器 A,安装Nginx
- web服务器 B 和 C,安装Apache
现在需要配置 nginx.conf 把 b.test.cn 指向 B 服务器,c.test.cn 指向 C 服务器。
nginx.conf关键配置:
...
upstream b_server {
ip_hash;
server 192.168.0.1 weight=1 max_fails=8 fail_timeout=30s;
}
upstream c_server {
ip_hash;
server 192.168.0.2 weight=1 max_fails=8 fail_timeout=30s;
}
...
server {
listen 80;
server_name b.test.cn;
location / {
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-Ip $remote_addr;
proxy_pass http://b_server;
}
}
server {
listen 80;
server_name c.test.cn;
location / {
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-Ip $remote_addr;
proxy_pass http://c_server;
}
}
如上配置,即可实现不同域名反向代理指向不同IP(端口)。