NGINX 忽略了 Auth Basic?

NGINX 忽略了 Auth Basic?

我已将 nginx 配置为使用 auth_basic 对目录进行密码保护。密码提示出现,登录正常。

但是...如果我拒绝输入我的凭证,而是连续多次按下“退出”键,页面最终将加载不带 CSS 和图像的页面。

换句话说,不断地告诉登录提示消失,在某个时候无论如何都会允许页面加载。

这是 nginx 的问题,还是我的配置的问题?

这是我的虚拟主机:

31 server {
32    server_name sub.domain.com;
33    root /www/sub.domain.com/;
34
35    location / {
36        index index.php index.html;
37        root /www/sub.domain.com;
38        auth_basic  "Restricted";
39        auth_basic_user_file /www/auth/sub.domain.com;
40        error_page 404 = /www/404.php;
41    }
42
43    location ~ \.php$ {
44        include /usr/local/nginx/conf/fastcgi_params;
45     }
46 }

我的服务器运行 CentOS + nginx + php-fpm + xcache + mysql

答案1

您的配置,nginx 将仅使用最具体的位置块。因此,当您请求 *.php 文件时,它将使用位置 ~ .php$ 块,而不会看到身份验证基本配置。

.css、.js 等文件之所以能正常工作,是因为它们与 PHP 位置块不匹配

您还需要将您的身份验证基本配置添加到 php 文件位置块。

相关内容