Patryk, leider können Sie nicht mehr als einen namenbasierten HTTPS-Server festlegen. Die Erklärungen sind lang, aber Sie können hier nach unabhängigen Informationen und Beispielen suchen (Apache-basiert, keine Ahnung von Nginx)
nginx Konfigurationskonflikt mit zwei Standorten
Ich habe Nginx für eine meiner Domains konfiguriert. Es funktioniert als Frontend für den Wildfly-Anwendungsserver. Eines Tages entschied ich mich, die Beta-Testumgebung auf demselben Rechner zu konfigurieren. Also habe ich eine weitere Subdomain zur Konfiguration hinzugefügt. Nach dem Neustart wurde Nginx gestoppt, um die erste Anwendung bereitzustellen. Meine Konfigurationsdateien sind:
Haupt-Subdomain:
server { listen 80; server_name sub.example.com; return 301 https://$host$request_uri; } server { listen 443; server_name sub.example.com; ssl_certificate /etc/nginx/ssl/bundle.crt; ssl_certificate_key /etc/nginx/ssl/sub.example.com.key; ssl on; ssl_session_cache builtin:1000 shared:SSL:10m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4; ssl_prefer_server_ciphers on; access_log /var/log/nginx/sub.example.com.access.log; location / { proxy_set_header Host $host; 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 $scheme; proxy_pass http://localhost:8080; proxy_read_timeout 90; } }
test subdomain:
server { listen 443; server_name sub-test.example.com; return 301 http://$host$request_uri; } server { listen 80; server_name sub-test.example.com; access_log /var/log/nginx/sub-test.example.com.access.log; location / { proxy_set_header Host $host; 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 $scheme; proxy_pass http://localhost:8080; proxy_read_timeout 90; } }
Ich muss hinzufügen, dass jede der obigen Konfigurationen wie erwartet funktioniert, wenn sie alleine ist. Aber zusammen mögen sie sich nicht. Das Anfordern des ersten von ihnen gibt den HTTP-Status NICHT GEFUNDEN zurück.
Natürlich liegt das Problem möglicherweise auf meinem Wildfly-Server. Es ist für die Verarbeitung von virtuellen Hosts konfiguriert und ich bin nicht wirklich sicher, ob es in Ordnung ist. Wenn jedoch beide Anwendungen ausgeführt werden und nur eine davon von nginx weitergeleitet wird, funktioniert dies einwandfrei.
Danke für die Hilfe.
2 Antworten auf die Frage
Sie können mehr als eine https-Site verwenden.
Die Technologie wird als SNI oder Servername bezeichnet. Referenz
Durch das Verschieben des SSL-Teils aus den Serverkonfigurationen reduzieren Sie auch den Aufwand für die Konfiguration der Zertifikate. Ich benutze die folgende Struktur für meine umgekehrten Proxies:
sites.d/ | -ssl.conf | -vhost1.conf | -vhost2.conf
ssl.conf enthält dann:
ssl_certificate /etc/ssl/certs/ssl.crt; ssl_certificate_key /etc/ssl/certs/server.key;
Eine andere Option wäre die Verwendung separater Zertifikate mit unterschiedlichen allgemeinen Namen.
Verwandte Probleme
-
2
Gibt es eine Möglichkeit, ein drahtloses Netzwerk an eine Proxy-Einstellung zu binden?
-
5
Zugriff auf Hulu / Youtube außerhalb der USA
-
1
Opera "vergisst" die Proxy-Definition, wenn der Proxy nicht erreichbar ist
-
5
Firefox automatisch zum Standard-Internet-Proxy machen lassen?
-
1
Apache Reverse Proxy
-
3
Kann nicht herausfinden, warum diese Regex nicht zutrifft
-
2
Kostenloser Proxyserver für Windows Home Server?
-
3
Die Proxy-Einstellungen des PCs werden überschrieben
-
5
Kennt jemand eine skriptfähige Methode zum Wechseln der Internet-Proxy-LAN-Einstellungen für Browser
-
2
Lassen Sie Evolution einen SOCKS-Proxy durchlaufen