`
isno
  • 浏览: 14971 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

设置nginx禁止通过IP访问服务器

阅读更多
今天要在Nginx上设置禁止通过IP访问服务器,只能通过域名访问,这样做是为了避免别人把未备案的域名解析到自己的服务器IP而导致服务器被断网,从 网络上搜到以下解决方案:
==============================
nginx的默认虚拟主机在用户通过IP访问,或者通过未设置的域名访问(比如有人把他自己的域名指向了你的ip)的时候生效

最关键的一点是,在server的设置里面添加这一行:
listen       80 default;
后面的default参数表示这个是默认虚拟主机。

这个设置非常有用。
比如别人通过ip或者未知域名访问你的网站的时候,你希望禁止显示任何有效内容,可以给他返回500.
目前国内很多机房都要求网站主关闭空主机头,防止未备案的域名指向过来造成麻烦。就可以这样设置:
server {
listen       80 default;
return 500;
}

也可以把这些流量收集起来,导入到自己的网站,只要做以下跳转设置就可以:
server {
listen       80 default;
rewrite ^(.*) http://www.mydomain.com permanent;
}
==============================

按照如上设置后,确实不能通过IP访问服务器了,但是在应该用中出现当server_name后跟多个域名时,其中一个域名怎么都无法访问:

设置如下:
server
{
listen       80;
server_name www.abc.com  abc.com
没更改之前,通过server_name 中的www.abc.com  abc.com均可访问服务器,加入禁止IP访问的设置后,通过abc.com无法访问服务器了,www.abc.com可以访问

用 nginx -t 检测配置文件会提示warning:

[warn]: conflicting server name “abc.com” on 0.0.0.0:80, ignored
the configuration file /usr/local/webserver/nginx/conf/nginx.conf syntax is ok
configuration file /usr/local/webserver/nginx/conf/nginx.conf test is successful

最后通过在listen 80 default;后再加server_name _;解决,形式如下:

#禁止IP访问
server
{
listen 80 default;
server_name _;
return 500;
}

这样,通过abc.com就能访问服务器了,问题解决了,但具体原因还是不清楚。
分享到:
评论

相关推荐

    Nginx 禁止IP访问 只允许域名访问

    Nginx 禁止IP访问这个设置非常有用。 比如别人通过ip或者未知域名访问你的网站的时候,你希望禁止显示任何有效内容,可以给他返回500.目前国内很多机房都要求网站主关闭空主机头,防止未备案的域名指向过来造成麻烦...

    详解CentOS下Nginx如何禁止IP访问

    服务器的安全相信是每位运维人员最关心的问题,不知道大家在使用的时候会不会遇到很多的恶意IP攻击,最近公司的服务器就遇到了这个问题,这个时候就要用到Nginx 禁止IP访问了。本文介绍了详细的步骤,有同样问题的...

    Nginx中禁止使用IP访问网站的配置实例

    国内因为备案的原因,所有服务器都要禁止使用IP访问网站。否则,如果允许使用IP访问网站,那随便解析一个域名到该IP,访问该域名就可以打开网站了。这是一个极大的风险!Nginx中可以很方便的来解决这个问题,小菜鸟...

    Web应用安全:Nginx权限配置.doc

    实验三:Nginx权限配置 实验目的 熟悉nignx并配置访问权限 ...我们在步骤二中输入的命令是禁止所有ip访问服务器,因此重启过后,Windows访问kali的nginx服务器时显示被禁止。 附:在修改前,可以正常进入网站。

    禁止IP访问网站的多种方法分享(linux,php,nginx,apache)

    禁止IP访问网站的各种方法有许多,不同服务器环境的方法会所有不同,下面我总结我们常用的禁止IP访问网站的实现配置方法,希望对大家会有所帮助

    nginx外网访问内网站点配置操作

    通过域名可以访问站点且站点静态资源且可访问API请求数据 方案一:(前提:外网域名映射服务器外网IP) 1.nginx配置域名监听且访问静态资源 2.重点来了!!!静态资源请求API的地址由192.168.1.12:8080修改为域名访问...

    Nginx防止直接用IP访问Web服务器的设置方法

    官方文档中提供的方法: If you do not want to process ... } 说白了就是只要是访客用ip访问就直接重置444错误。但是这样好像又不太友好,如果能直接给跳转到该web server的网址就好了。配置如下: 代码如下: s

    Web应用安全:Nginx权限配置.pptx

    在Nginx中,可以设定各IP访问服务器的权限,命令格式如下: allow/deny address | CIDR | all 允许访问 禁止访问 Nginx权限配置 3、参数详解 #address,允许访问的客户端IP,不支持同时设置多个。如果有多个IP需要...

    外贸网站屏蔽中国IP访问的多种方法

    其次是通过IPtable要禁止中国IP段来达到屏蔽的目的。 以下是Iptable的Sh脚本: 代码如下: #!/bin/bash # Block traffic from a specific country # written by vpsee.com   COUNTRY = “cn” I

    关闭nginx空主机头 防止nginx空主机头及恶意域名指向

    nginx的默认配置中的虚拟主机允许用户通过IP访问,或者通过未设置的域名访问(比如有人恶意把他自己的域名指向了你的ip) 这是因为默认配置中的server区域里有这一行: listen 80 default; 后面的default参数表示这...

    Nginx服务器中配置GeoIP模块来拦截指定国家IP

    然后配置相关国家的 ISO 名称,禁止访问即可。记录一下相关过程。 编译 GeoIP 组件 maxmind 提供的免费版数据库已经可以满足需求,在使用数据库前,需要先编译 GeoIP 组件: wget ...

    iptables-web-gui:死项目 - 改用 ufw

    v1.4.14 测试)如何安装编辑 config.php 并设置 SSH 配置(基于密钥或密码) 通过我们的 www 服务器保护(下面有一些指南) 跑步如何保护(使用 nginx) 禁止公共访问,例如 - 只允许我的个人 IP 设置 HTTP 身份验证...

    淘客帝国破解版

    后台配置中心增加IP禁用,可以选择禁止IP段访问。 修复选择价格范围后翻页丢失的BUG。 5.13 稳定版 本版本增加了可以直接调用DISCUZ论坛和织梦文章的功能。抛弃了原来的调用形式,只需要在配置中心指定文章系统安装...

    javapms门户网站源码

    点击列表上的“新增”按钮,可以创建新的栏目,新建栏目时可以在“基本属性”选项中设置上级栏目、栏目名称、访问路径、meta标题、meta关键字、meta描述、排列顺序、打开方式、外部链接、是否单页等。如下图所示。 ...

Global site tag (gtag.js) - Google Analytics