Nginx में कुछ रास्तों के लिए SSL अक्षम करें


11

मेरे पास एक वेब साइट है जहां मैं चाहता हूं कि एचटीटीपीएस के साथ सभी अनुरोध किए जाएं, जो पथ के साथ शुरू करने के अनुरोधों को छोड़कर /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;
        ...
    }
}

क्या आप एसएसएल का उपयोग नहीं करने के लिए उस मार्ग के लिए अनुरोधों को बाध्य करना चाहते हैं, या अनुरोधों को एसएसएल का उपयोग नहीं करने की अनुमति देते हैं?
शेन मैडेन

मैं HTTP और HTTPS का उपयोग करने के लिए उस पथ के अनुरोधों को अनुमति देना चाहता हूं।
हेकविंट्रान

जवाबों:


15

गैर-एसएसएल, पोर्ट 80 के लिए दूसरा सर्वर प्रविष्टि जोड़ें, /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;
    }
}

एकदम सही जवाब।
हेकविंट्रान
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.