如果有人向我的 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;
}