我想为两个或多个网站设置代理服务器,但它总是向我显示第一个网站并忽略 server_name。我查看了有关杂项名称的文档,并根据提示设置了所有内容。
我的 nginx 配置如下所示:
map $http_x_forwarded_proto $proxy_x_forwarded_proto {
default $http_x_forwarded_proto;
'' $scheme;
}
map $http_x_forwarded_port $proxy_x_forwarded_port {
default $http_x_forwarded_port;
'' $server_port;
}
map $http_upgrade $proxy_connection {
default upgrade;
'' close;
}
map $scheme $proxy_x_forwarded_ssl {
default off;
https on;
}
server_names_hash_bucket_size 128;
proxy_http_version 1.1;
proxy_buffering off;
proxy_set_header Host $http_host;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $proxy_connection;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $proxy_x_forwarded_proto;
proxy_set_header X-Forwarded-Ssl $proxy_x_forwarded_ssl;
proxy_set_header X-Forwarded-Port $proxy_x_forwarded_port;
proxy_read_timeout 600;
proxy_connect_timeout 600;
proxy_set_header Proxy "";
server {
server_name _; # This is just an invalid value which will never trigger on a real hostname.
listen 80;
return 503;
}
upstream local.ex1site.com {
server 172.18.0.4:80;
server 127.0.0.1 down;
}
server {
server_name local.ex1site.com;
listen 80 ;
location / {
proxy_pass http://local.ex1site.com;
}
}
upstream local.ex2site.com {
server 172.18.0.6:80;
server 127.0.0.1 down;
}
server {
server_name local.ex2site.com;
listen 80 ;
location / {
proxy_pass http://local.ex2site.com;
}
}
当我打开local.ex2site.com时,它会显示来自local.ex1site.com的内容。
任何建议将不胜感激。