返回 444 而不是 400

返回 444 而不是 400

如果有人向我的 nginx 服务器上的 https 资源发出 http 请求,他们会收到错误 400。“纯 HTTP 请求已发送到 HTTPS 端口”有没有办法返回 444?

当我搜索此错误时,我只能找到那些遇到配置问题并试图修复的人。但就我而言,我的配置没有问题 - 我正在尝试将非法请求的影响降至最低。

编辑:我使用这个来阻止直接 IP 访问我的服务器。如果有人发出 http 请求,他们会得到响应 400 而不是 444。我只是不想得到响应。

server {
    listen 443 ssl http2 default_server;
    listen [::]:443 ssl http2 default_server;
    ssl_certificate /etc/nginx/ssl/n.pem;
    ssl_certificate_key /etc/nginx/ssl/n2.pem;
    server_name _;
    return 444;
}

答案1

nginx 可以用下面的方式响应 444 :

error_page 497 =444 /444.html;

location = /444.html {
        return 444;
}

相关内容