Nginx 如何在没有“;主机&x201D;标题字段

Nginx 如何在没有“;主机&x201D;标题字段,nginx,curl,nginx-config,server-name,Nginx,Curl,Nginx Config,Server Name,我有一台服务器正在使用: 但我不知道如何测试它是否有效 以下是我在黑暗中尝试过的几件事: $ 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;

我有一台服务器正在使用:

但我不知道如何测试它是否有效

以下是我在黑暗中尝试过的几件事:

$ 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——头主机:mysite.com

请注意,标题选项的参数只是
Host:
'Host:'
'Host:'
将不起作用)


curl的最新版本可能有一个
--http0.9
选项,可以得到相同的结果,但我没有测试它

这适用于curl 7.47:

curl-I——头主机:mysite.com

请注意,标题选项的参数只是
Host:
'Host:'
'Host:'
将不起作用)


curl的最新版本可能有一个
--http0.9
选项,可以得到相同的结果,但我没有测试它

要检查您的服务器在没有HTTP
主机
标头的情况下如何处理请求(您应该通过其IP地址进行访问),并且您试图以错误的方式配置服务器,这是一个有效的示例。举个例子:假设您的服务器具有IP地址
1.2.3.4
,并且它所服务的域名是
example.com
,命令
curl-I example.com
curl-I 1.2.3.4--header'Host:example.com
是等效的。您可以尝试:
curl--http1.0
—但是如果
服务器名为“”,我会感到惊讶
匹配没有
主机
头的请求-我希望Nginx使用
默认的\u服务器
。要检查没有HTTP
主机
头的服务器如何处理请求,您应该通过其IP地址进行访问),并且您试图以错误的方式配置服务器,正在运行示例。给您一个示例:假设您的服务器具有IP地址
1.2.3.4
,并且它提供的域名是
example.com
,命令
curl-I example.com
curl-I 1.2.3.4--header'Host:example.com
是等效的。您可以尝试:
curl--http1.0
—但是如果
服务器名为“”,我会感到惊讶
匹配没有
主机
头的请求-我希望Nginx使用
默认\u服务器
server {
    listen 80;
    server_name "";
    return 444;
}

server {
    listen 80 default_server;
    listen [::]:80 default_server;
    server_name _;
    return 301 https://$host$request_uri;
}