打印

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

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;

TOP

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

LNMP付费问题排查/LNMP技术支持/Paypal信用卡代付/代购VPS,域名,软件等 QQ 503228080 旺旺 lzhenbao
军哥淘宝店铺
QQ/旺旺仅提供代购及付费代维/问题解决等服务,其他不回复!LNMP相关问题请在本论坛发帖,提问前先搜索,按https://bbs.vpser.net/thread-2555-1-1.html 要求反馈问题!

TOP

经过多种方法测试,我发现在多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 编辑 ]

TOP