मूलभूत स्रोत साइविड को सक्षम करें और इसे सबपेज के लिए अक्षम करें?


26

मेरे पास एक अपेक्षाकृत सीधा आगे का विन्यास है:

upstream appserver-1 {
    server unix:/var/www/example.com/app/tmp/gunicorn.sock fail_timeout=0;
}
server {
    listen  80;
    server_name  example.com;

    location / {
        proxy_pass http://appserver-1;
        proxy_redirect              off;
        proxy_set_header            Host $host;
        proxy_set_header            X-Real-IP $remote_addr;
        proxy_set_header            X-Forwarded-For $proxy_add_x_forwarded_for;

        auth_basic                  "Restricted";
        auth_basic_user_file        /path/to/htpasswd;

    }

    location /api/ {
        auth_basic          off;
    }
}

लक्ष्य पूरी वेबसाइट पर मूल स्रोत का उपयोग करना है, इसके अलावा /api/सबट्री पर। हालांकि यह मूल स्थिति के संबंध में काम करता है, अन्य निर्देश जैसे proxy_passप्रभाव में भी नहीं हैं /api/

क्या बिना कॉपी और पेस्ट किए हुए अन्य निर्देशों को बरकरार रखते हुए सिर्फ मूल अधिकार को निष्क्रिय करना संभव है?

जवाबों:


26

दो फ़ाइलों के बारे में कैसे?

इसमें शामिल है:

proxy_pass http://appserver-1;
proxy_redirect              off;
proxy_set_header            Host $host;
proxy_set_header            X-Real-IP $remote_addr;
proxy_set_header            X-Forwarded-For $proxy_add_x_forwarded_for;

और आपकी वर्तमान गोपनीय फ़ाइल:

upstream appserver-1 {
    server unix:/var/www/example.com/app/tmp/gunicorn.sock fail_timeout=0;
}
server {
    listen  80;
    server_name  example.com;

    location / {
        auth_basic                  "Restricted";
        auth_basic_user_file        /path/to/htpasswd;
        include includes/proxy.conf;
    }

    location /api/ {
        auth_basic          off;
        include includes/proxy.conf;
    }
}

9

विन्यास फाइल

Nginx 1.4.4 में आपको सेटिंग के offलिए चारों ओर उद्धरणों की आवश्यकता auth_basicहोती है।

location / {
    auth_basic "Restricted";
    auth_basic_user_file /etc/nginx/passwd;
        include /etc/nginx/uwsgi_params;
        uwsgi_pass unix:/tmp/app.sock;
}

location /api {
    auth_basic "off";
        include /etc/nginx/uwsgi_params;
        uwsgi_pass unix:/tmp/app.sock;
}

अपनी htpasswd / passwd फ़ाइल बनाना

इंस्टॉल करें apache2-utils, एक अच्छा सहायक ऐप है जो आपके लिए बहुत तेज़ी से htpasswd फ़ाइल बनाता है। http://httpd.apache.org/docs/2.2/programs/htpasswd.html

htpasswd -c -m <filename> <username>

यह एक विशिष्ट स्थान को बाहर करता है और बाकी साइट के लिए एक पासवर्ड के लिए संकेत देता है। हालाँकि , अगर मैं 401 त्रुटि पृष्ठ के बजाय, रद्द करता हूं, तो यह मुझे मेरे द्वारा अनुरोधित वास्तविक पृष्ठ दिखाता है, लेकिन बिना किसी स्थैतिक फाइलों के।
anexl

4

नीचे विन्यास मेरे लिए काम करता है शेयर फ़ोल्डर के लिए कोई प्रमाणीकरण और साइट के बाकी आवश्यक प्रमाणीकरण के बिना मेरी डिस्क से एक फ़ोल्डर साझा करने के लिए

server {
        listen       80;
        server_name  localhost;
        root C:\\Users\\Work\\XYZ\\;
        autoindex on;
        autoindex_exact_size off;
        autoindex_localtime on;
        auth_basic "Administrator Login";
        auth_basic_user_file C:\\Users\\Work\\.htpasswd;

        location /share {
            auth_basic "off";
            allow all; # Allow all to see content 
            alias C:\\Users\\sg32884\\Work\\share\\;
        }
}
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.