Nginxの特定のパスでSSLを無効にする


11

パスがで始まるURLへのリクエストを除くすべてのリクエストをHTTPSで実行したいWebサイトがあります/foo/。Nginxでこれをどのように構成しますか?

現在、すべてのリクエストをSSLで実行しています。

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;
        ...
    }
}

SSLを使用しないようにそのパスへの要求を強制しますか、それともSSLを使用しない要求を許可しますか?
シェーンマッデン2012年

そのパスへのリクエストでHTTPおよびHTTPSを使用できるようにしたい。
hekevintran、2012年

回答:


15

SSL以外のポート80の2つ目のサーバーエントリを追加し、/foo/*その他すべてをHTTPS URLに提供およびリダイレクトします。

多分このようなものですか?:

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

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

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

完璧な答え。
hekevintran
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.