Ich versuche drei Dinge zu erreichen:
- Ordnen Sie den Datenverkehr nach Subdomain einer von mehreren Anwendungen an verschiedenen Ports zu.
- Wenn die Subdomain nicht erkannt wird, leiten Sie sie an www weiter.
- HTTPS für alle Subdomains erforderlich.
Meine bisherige Nginx-Konfiguration lautet:
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;
}
}
Diese fast funktioniert (es erreicht # 1 und # 3), aber statt Umleitung foo.mydomain.com
zu www.mydomain.com
, es dient nur der www
Inhalt ohne Umleiten. Ich bin mir nicht sicher, wie ich nicht zugeordnete Subdomains umleiten soll, ohne das Ganze in separate server
Blöcke aufzuteilen, was ich wirklich lieber nicht tun würde.
Gibt es eine Möglichkeit, alle in der Karte nicht explizit genannten Subdomains an umzuleiten www
?