Deaktivieren Sie SSL für bestimmte Pfade in Nginx


10

Ich habe eine Website, auf der alle Anforderungen mit HTTPS ausgeführt werden sollen, mit Ausnahme von Anforderungen an URLs mit Pfaden, die mit beginnen /foo/. Wie konfiguriere ich das in Nginx?

Im Moment führe ich alle Anfragen mit SSL aus:

server {
    listen 443;

    ssl on;
    ssl_certificate /home/admin/ssl/ssl.crt;
    ssl_certificate_key /home/admin/ssl/ssl.key;

    server_name www.mydomain.com;

    location / {
        proxy_pass http://localhost:8000;
        ...
    }
}

Möchten Sie Anforderungen an diesen Pfad zwingen , kein SSL zu verwenden, oder zulassen , dass Anforderungen kein SSL verwenden?
Shane Madden

Ich möchte zulassen, dass Anforderungen an diesen Pfad HTTP und HTTPS verwenden.
Hekevintran

Antworten:


14

Fügen Sie einen zweiten Servereintrag für Nicht-SSL, Port 80, hinzu, der /foo/*alles andere bedient und zur HTTPS-URL umleitet.

Vielleicht so etwas?:

server {
    listen      80;
    server_name www.example.com;

    location ~ ^/(foo|foo/.*)$ {
        proxy_pass http://localhost:8000;
        ... 
    }

    location / {
        rewrite  ^ https://$server_name$request_uri? permanent;
    }
}

Perfekte Antwort.
Hekevintran
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.