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
?
nginx
redirect
subdomain
wildcard-subdomain
Don McCurdy
quelle
quelle
Antworten:
Implementieren Sie einfach einen Standardserver. Hier ist meins
Sie können jede gewünschte Aktion ausführen.
quelle
Um nur zu sagen, dass ich in AWS einen A-Datensatz "* .staging.mydomain.com" in Route53 hinzufügen musste, der auf dieselbe EC2-Instanz-IP verweist (wie der Datensatz für "staging.mydomain.com").
quelle
Folgendes funktioniert für mich ...
Hier ist die Änderung in der Nginx-Konfiguration, damit es funktioniert ...
Ich habe 8888 als Standardport verwendet. Jeder nicht verwendete Port sollte funktionieren.
quelle