半岛小生 发表于 2018-4-19 11:05:59

Nginx多IP环境如何禁止空主机头访问

军哥,又得麻烦你了。

用原先禁止访问空主机头的方法在绑定多个IP的环境下不起任何作用。还是可以直接用IP访问,也无法禁止域名恶意解析指向。请教军哥Nginx如何在绑定多个IP的环境下禁止空主机头访问?备注:每个IP下均已开设虚机。感谢!

以下是我试过无效的方法,但单个IP下是有效的。
nginx.conf添加替换为以下:
server
    {
      listen 80 default_server;
      #listen [::]:80 default_server ipv6only=on;
      server_name _;
      #index index.html index.htm index.php;
      #root/home/wwwroot/default;
                return 403;

licess 发表于 2018-4-20 09:17:25

这就是默认虚拟主机,所有没添加的域名,所有ip都到这里
是替换不是添加,default_server只能有一个,不起作用肯定你的配置有问题

半岛小生 发表于 2018-4-23 11:35:50

经过多种方法测试,我发现在多IP和单IP环境下的配置是不一样的,如下:

(1)多IP情况下需分别再添加两个不同IP地址的server:
server
    {
      listen 198.46.197.201:80 default_server;
      server_name "";
    return 444;   
    }   
server
    {
      listen 192.227.162.35:80 default_server;
      server_name "";
    return 444;   
    }   

(2)单IP情况下仅需修改为以下即可:
listen 80 default_server;
server_name _;
return 444;

NOTE:需特别说明的是,多IP下使用listen *:80 default_server;是无效的,一开始我用的可以,但不知道怎么的后来又失效了,得单独添加才行。

估计有不少人也需要这个,特意编辑帖子发出,希望对大家有用!

[ 本帖最后由 半岛小生 于 2018-5-3 19:00 编辑 ]

清风笑 发表于 2023-7-8 00:16:10

正需要,谢谢分享
页: [1]
查看完整版本: Nginx多IP环境如何禁止空主机头访问