今天要在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访问这个设置非常有用。 比如别人通过ip或者未知域名访问你的网站的时候,你希望禁止显示任何有效内容,可以给他返回500.目前国内很多机房都要求网站主关闭空主机头,防止未备案的域名指向过来造成麻烦...
服务器的安全相信是每位运维人员最关心的问题,不知道大家在使用的时候会不会遇到很多的恶意IP攻击,最近公司的服务器就遇到了这个问题,这个时候就要用到Nginx 禁止IP访问了。本文介绍了详细的步骤,有同样问题的...
国内因为备案的原因,所有服务器都要禁止使用IP访问网站。否则,如果允许使用IP访问网站,那随便解析一个域名到该IP,访问该域名就可以打开网站了。这是一个极大的风险!Nginx中可以很方便的来解决这个问题,小菜鸟...
实验三:Nginx权限配置 实验目的 熟悉nignx并配置访问权限 ...我们在步骤二中输入的命令是禁止所有ip访问服务器,因此重启过后,Windows访问kali的nginx服务器时显示被禁止。 附:在修改前,可以正常进入网站。
禁止IP访问网站的各种方法有许多,不同服务器环境的方法会所有不同,下面我总结我们常用的禁止IP访问网站的实现配置方法,希望对大家会有所帮助
通过域名可以访问站点且站点静态资源且可访问API请求数据 方案一:(前提:外网域名映射服务器外网IP) 1.nginx配置域名监听且访问静态资源 2.重点来了!!!静态资源请求API的地址由192.168.1.12:8080修改为域名访问...
官方文档中提供的方法: If you do not want to process ... } 说白了就是只要是访客用ip访问就直接重置444错误。但是这样好像又不太友好,如果能直接给跳转到该web server的网址就好了。配置如下: 代码如下: s
在Nginx中,可以设定各IP访问服务器的权限,命令格式如下: allow/deny address | CIDR | all 允许访问 禁止访问 Nginx权限配置 3、参数详解 #address,允许访问的客户端IP,不支持同时设置多个。如果有多个IP需要...
其次是通过IPtable要禁止中国IP段来达到屏蔽的目的。 以下是Iptable的Sh脚本: 代码如下: #!/bin/bash # Block traffic from a specific country # written by vpsee.com COUNTRY = “cn” I
nginx的默认配置中的虚拟主机允许用户通过IP访问,或者通过未设置的域名访问(比如有人恶意把他自己的域名指向了你的ip) 这是因为默认配置中的server区域里有这一行: listen 80 default; 后面的default参数表示这...
然后配置相关国家的 ISO 名称,禁止访问即可。记录一下相关过程。 编译 GeoIP 组件 maxmind 提供的免费版数据库已经可以满足需求,在使用数据库前,需要先编译 GeoIP 组件: wget ...
v1.4.14 测试)如何安装编辑 config.php 并设置 SSH 配置(基于密钥或密码) 通过我们的 www 服务器保护(下面有一些指南) 跑步如何保护(使用 nginx) 禁止公共访问,例如 - 只允许我的个人 IP 设置 HTTP 身份验证...
后台配置中心增加IP禁用,可以选择禁止IP段访问。 修复选择价格范围后翻页丢失的BUG。 5.13 稳定版 本版本增加了可以直接调用DISCUZ论坛和织梦文章的功能。抛弃了原来的调用形式,只需要在配置中心指定文章系统安装...
点击列表上的“新增”按钮,可以创建新的栏目,新建栏目时可以在“基本属性”选项中设置上级栏目、栏目名称、访问路径、meta标题、meta关键字、meta描述、排列顺序、打开方式、外部链接、是否单页等。如下图所示。 ...