nginx 文件夹密码保护

nginx 文件夹密码保护

我正在尝试在我的服务器上设置受密码保护的文件夹(使用 nginx)。我尝试过如下方法:

    location / {
        root   /srv/www/steampunkjunkies.net/www;
        index  index.html index.htm index.php;
    }

    location /cgi-bin/admin {
        satisfy any;
        allow  81.174.134.133;
        deny   all;
        auth_basic "Administrator Login";
        auth_basic_user_file /var/www/steampunkjunkies.net/htpasswd;
    }

...但问题是,一旦你登录 - 它就不会再执行下面的代码:

    location ~ \.cgi$ {
        gzip off;
        include /etc/nginx/fastcgi_params;
        fastcgi_pass unix:/var/run/fcgiwrap.socket;
        fastcgi_index index.cgi;
        fastcgi_param SCRIPT_FILENAME /srv/www/steampunkjunkies.net/www/cgi-bin/$fastcgi_script_name;
    }

(因此您只需下载文件)

我有点不知该怎么做。有什么建议吗?(这是我第一次在 Nginx 上用密码保护文件夹……但我在 Apache 上已经做过很多次了)

更新:根据建议,我现在得到:

location /cgi-bin/admin {
    satisfy any;
    allow  81.174.134.xxx;
    deny   all;
    auth_basic "Administrator Login";
    auth_basic_user_file /var/www/mysite.net/htpasswd;

    location ~ \.cgi$ {
        gzip off;
        include /etc/nginx/fastcgi_params;
        fastcgi_pass unix:/var/run/fcgiwrap.socket;
        fastcgi_index index.cgi;
        fastcgi_param SCRIPT_FILENAME /srv/www/mysite.net/www/cgi-bin/$fastcgi_script_name;
    }
}

IP部分工作正常:

    satisfy any;
    allow  81.174.134.xxx;
    deny   all;

(如果我将 IP 更改为不是我的 IP,则会出现弹出窗口...否则它会让我进入)

问题出在弹出的密码验证框上。我输入了详细信息(正确),然后它就消失了 - 但403 Forbidden不知为何我又出现了错误。有什么想法吗?

答案1

这里的问题是,所有位置块都是分开的,并且 nginx 根据第一次匹配来选择位置。

location ~ \.cgi$ {您也可以通过将块包含在块内来解决这个问题location /cgi-bin/admin {,如下所示:

location /cgi-bin/admin {
    satisfy any;
    allow  81.174.134.133;
    deny   all;
    auth_basic "Administrator Login";
    auth_basic_user_file /var/www/steampunkjunkies.net/htpasswd;
    location ~ \.cgi$ {
        gzip off;
        include /etc/nginx/fastcgi_params;
        fastcgi_pass unix:/var/run/fcgiwrap.socket;
        fastcgi_index index.cgi;
        fastcgi_param SCRIPT_FILENAME /srv/www/steampunkjunkies.net/www/cgi-bin/$fastcgi_script_name;
    }
}

相关内容