사이트 전체에서 기본 인증을 사용하도록 설정하고 하위 페이지에 대해 인증을 사용하지 않습니까? proxy_pass http://appserver-1;

비교적 간단한 구성이 있습니다.

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/.

모든 복사 및 붙여 넣기없이 다른 지시문을 유지하면서 기본 인증을 비활성화 할 수 있습니까?



답변

두 파일은 어때요?

includes / proxy.conf는 다음과 같습니다.

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;

그리고 현재 conf 파일 :

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

답변

구성 파일

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 파일 만들기

Install apache2-utils에는 매우 빠른 htpasswd 파일을 생성하는 멋진 도우미 앱이 있습니다. http://httpd.apache.org/docs/2.2/programs/htpasswd.html

htpasswd -c -m <filename> <username>

답변

아래 구성은 공유 폴더 및 나머지 사이트에 대한 인증없이 디스크에서 폴더를 공유하는 데 필요합니다.

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