VPS侦探论坛

 找回密码
 注册
查看: 4700|回复: 3

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

[复制链接]
发表于 2018-4-19 11:05:59 | 显示全部楼层 |阅读模式

军哥,又得麻烦你了。

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

以下是我试过无效的方法,但单个IP下是有效的。
nginx.conf添加替换为以下:
  1. server
  2.     {
  3.         listen 80 default_server;
  4.         #listen [::]:80 default_server ipv6only=on;
  5.         server_name _;
  6.         #index index.html index.htm index.php;
  7.         #root  /home/wwwroot/default;
  8.                 return 403;
复制代码
美国VPS推荐: 遨游主机LinodeLOCVPS主机云搬瓦工80VPSVultr美国VPS主机中国VPS推荐: 阿里云腾讯云。LNMP付费服务(代装/问题排查)QQ 503228080
发表于 2018-4-20 09:17:25 | 显示全部楼层


这就是默认虚拟主机,所有没添加的域名,所有ip都到这里
是替换不是添加,default_server只能有一个,不起作用肯定你的配置有问题
Linux下Nginx+MySQL+PHP自动安装工具:https://lnmp.org
 楼主| 发表于 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 编辑 ]
美国VPS推荐: 遨游主机LinodeLOCVPS主机云搬瓦工80VPSVultr美国VPS主机中国VPS推荐: 阿里云腾讯云。LNMP付费服务(代装/问题排查)QQ 503228080
发表于 2023-7-8 00:16:10 | 显示全部楼层



正需要,谢谢分享
Linux下Nginx+MySQL+PHP自动安装工具:https://lnmp.org
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|VPS侦探 ( 鲁ICP备16040043号-1 )

GMT+8, 2024-11-21 20:21 , Processed in 0.026556 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表