我期望页面能够被访问,但页面却显示 444

我期望页面能够被访问,但页面却显示 444

我有一个带有多个 Nginx VHost 的服务器。

根据我对文档的阅读,我是这样设计的:

(...various configs...)
##
# Virtual Host Configs
##

include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;


# HTTP 444: non standard NGINX specific "drop connection"
server {
    listen 80 default_server;
    server_name _;
    return 444;
}
}

我使用 SSLLabs 测试了服务器本身,结果一切正常,我非常满意。服务器删除了烦人的 wordpress 管理员请求,日志中还提到了其他问题。

然后我决定创建一组简单的页面。

我想在我的主机上有一个包含私有数据但公开 index.html 和公开 mypage.html 和 mypage2.html 的文件夹,因此我locations在我的 sites-available/host_conf 文件中创建了该文件夹。

server {

    listen 443 ssl;
    ssl on;

location ~ \.(gif|jpg|png|svg)$ {
    root /var/www/images/;
}

server_name host.com www.host.com;
root /var/www/host/main/html/;

location = /folder/mypage.html {
    auth_basic "off";
}

location = /folder/mypage2.html {
    auth_basic "off";
}

location = /folder/ {
    index index.html;
}

location /folder/ {
    auth_basic "Acces restreint";
        auth_basic_user_file /var/www/host/main/.htpasswd;
}

location / {
    index index.html;
    try_files $uri $uri/ =404;
 }
}

这就是事情变得糟糕的地方:

如果我导航到 host.com,我会得到 200 和页面。很好。

如果我导航到 host.com/folder,我会收到身份验证请求和日志"GET /folder HTTP/1.1" 301 185,如果我不登录,则会收到 401。

如果我导航到 host.com/mypage.html,我会得到该页面和日志"GET /folder/mypage.html HTTP/1.1" 200 713

如果我导航到 host.com/mypage2.html,我会收到失败(无法显示页面)和日志"GET /folder/mypage2.html HTTP/1.1" 444 0 "-"

从那时起,我经历了一段时间的失败。

我应该调查什么?

答案1

我可能通过添加另一个块解决了该问题:

location = /folder/index.html {
auth_basic "off";
}

相关内容