用ng做反代时,A、B两个域名是解析到同一个服务器(ip)的,但是配置的时候,不能在这台服务器直接写上A域名,要使用upstream定义的名称来代替,但是在别的服务器是可以实现的(C域名反代到A),因为在前面有过这个配置`
这里先解释一下upstream
upstream的基本语法如下,一个upstream需要设置一个名称,这个名称可以在server里面当作proxy主机使用。
upstream default {
server php-fpm-tfphp:9000;
}
一个upstream可以设置多个server,通常情况下Nginx会轮询每一个server,从而达到最基本的负载循环效果。
upstream default {
server tflinux_php-fpm-tfphp_1:9000;
server tflinux_php-fpm-tfphp_2:9000;
}
upstream app {
server 127.0.0.1:808;
#每个nginx worker可以保留的idle连接,也就是说最多可保留的长连接
keepalive 100;
}`,
所以后面的域名反代要使用
location /xxxx{
proxy_pass http://app/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $http_host;
proxy_set_header X-Forwarded-Port $server_port;
proxy_set_header X-Forwarded-Proto $scheme;
}