我有一台服务器正在使用Nginx的444来断开与未定义主机的连接:
server {
listen 80;
server_name "";
return 444;
}
但是我不知道如何测试它是否有效。
以下是我尝试过的几件事,在黑暗中刺伤:
$ curl -I mysite.com --header 'Host: ""'
HTTP/1.1 301 Moved Permanently
$ curl -I mysite.com --header ''
HTTP/1.1 301 Moved Permanently
我想得到那个444!
这是我的nginxmysite.conf文件的相关部分
server {
listen 80;
server_name "";
return 444;
}
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
return 301 https://$host$request_uri;
}
因此,要么我测试错误,要么我正确测试它,但丢失的主机标头仍然被我的第二个服务器块捕获并重定向。
这适用于 curl 7.47:
curl -I --header Host: mysite.com
请注意,标头选项的参数只是Host:
('Host: '
和'Host: ""'
不起作用(
最新版本的 curl 可能有一个--http0.9
选项,可能会得到相同的结果,但我没有测试它。