我一直在尝试将nginx设置为代理,其中基于子域将请求路由到上游。我希望例子能使它更清楚
upstream ubuntu {
server www.ubuntu.com:443;
}
upstream google {
server www.google.com:443;
}
server {
listen 443 ssl ;
ssl_certificate /etc/ssl/certs/client-certs/server.crt;
ssl_certificate_key /etc/ssl/certs/client-certs/server.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1.2;
resolver 127.0.0.1 ipv6=off;
# Make site accessible from http://localhost/
server_name ~^(.*)\.test\.com$;
location / {
proxy_pass https://$1;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
因此,如果我请求https://google.test.com,则应转到https://www.google.com
使用此当前设置,nginx返回我查询的任何站点的404。虽然我可以看到该请求转到了我查询的上游站点(在本例中为google.com)。
如果丢失任何东西都不会得到。