我正在努力完成三件事:
到目前为止,我的 nginx 配置是:
map $subdomain $subdomain_port {
default 8000;
www 8000;
subdomain1 8001;
subdomain2 8002;
subdomain3 8003;
}
server {
listen 80;
listen [::]:80;
server_name _;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name ~^(?P<subdomain>.+?)\.mydomain\.com$;
ssl_certificate <cert>;
ssl_certificate_key <key>;
location / {
# ... various proxy headers, then ...
proxy_pass http://127.0.0.1:$subdomain_port;
proxy_redirect off;
}
}
Run Code Online (Sandbox Code Playgroud)
这几乎有效(它完成了 #1 和 #3),但它不是重定向foo.mydomain.com
到www.mydomain.com
,而是只提供www
内容而不重定向。我不确定如何重定向未映射的子域而不将整个事物分成单独的server
块,我真的不想这样做。
有没有办法将地图中未明确提及的所有子域重定向到www
?