今天要在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.exchangecn.com permanent; 

==============================

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

设置如下: 
server 

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

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

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

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

#禁止IP访问 
server 

listen 80 default; 
server_name _; 
return 500; 

或者 
server { 
listen 80 dufault; 
server_name _; 
rewrite ^(.*) http://www. exchangecn .net permanent; 

这样,通过 exchangecn .com就能访问服务器了,问题解决了,但具体原因还是不清楚。

分类:Nginx 成功分享标签:301, ipNginx 设置301重定向2010年3月2日iNginx没有评论  
第一种情况:访问A站定向到B站 
server { 
server_name www. exchangecn .net ; 
rewrite ^(.*) http://www. exchangecn .com$1 permanent; 

第二种情况:不是访问A站的全部重定向到指定页面 
server { 
server_name www. exchangecn .net; 
if ($host != ‘ exchangecn .net’ ) { 
rewrite ^/(.*)$ http://www. exchangecn .com/$1 permanent; 


如果写在第一个server段 
使用IP访问时也将被重定向

Nginx 禁止IP访问 只允许域名访问的更多相关文章

  1. 在nginx中,禁止IP访问.只可以使用域名访问.

    if ($host ~* "\d+\.\d+\.\d+\.\d+"){ ; } 其实说白了, 就是进行host主机头过滤,使用正则来判断下.

  2. Nginx禁止IP访问,只允许域名访问

    Nginx禁止IP访问,只允许域名访问 我们在使用nginx的过程中会遇到很多的恶意IP攻击,这个时候就要用到Nginx 禁止IP访问了. 1.直接返回403错误 server { listen de ...

  3. 设置nginx禁止IP直接访问,只能通过指定的域名访问

    nginx的版本是1.2.1. 设置配置文件disableip.conf: server {     listen 80;     server_name _;     return500; } 这是 ...

  4. Linux 如何设置只允许域名访问站点而禁止IP访问站点

    最近在论坛里看到有人问到 Linux 如何设置只允许域名访问站点而禁止IP访问站点的问题,之前自己也用过这个功能,可以防止别人用 IP 地址来访问到自己的网站,下面我就我自己的环境给出解决方法,我用的 ...

  5. Nginx 禁止IP访问

    我们在使用的时候会遇到很多的恶意IP攻击,这个时候就要用到Nginx 禁止IP访问了.下面我们就先看看Nginx的默认虚拟主机在用户通过IP访问,或者通过未设置的域名访问(比如有人把他自己的域名指向了 ...

  6. Nginx禁止ip访问或IP网段访问方法

    Nginx禁止ip访问可以防止指定IP访问我们的网站,本例子可以实现是防止单IP访问或IP网段访问了,非常的有用我们一起来看看吧. 常用的linux做法 iptables参考规则  代码如下 复制代码 ...

  7. IIS、nginx、apache只允许域名访问配置

    您开启WAF后,攻击者只能看到WAF的IP,不能看到您的IP,攻击者通过域名访问您的网站时,就会根据规则拦截. 但是如果您的网站可以输入IP地址直接访问,是无法达到防御效果的.比如(http://42 ...

  8. [转帖]nginx 禁止ip访问以及禁止post方法的简单方法

    nginx禁止IP访问站点的设置方法 http://www.512873.com/archives/471.html http://www.512873.com/archives/312.html c ...

  9. nginx禁止ip登录,只允许域名访问

    公司要求,线上solr.kibana要求只能通过域名进行访问,禁止用ip+端口进行登录访问,那么,下面介绍下我是如何实现的 1.禁止ip,允许域名访问 如下图,默认安装好nginx,不让ip方式访问, ...

随机推荐

  1. VS2012下自定义打开文件对话框

    VS2012下自定义打开文件对话框,MFC的CFileDialog封装了太多,太复杂,绕得头晕,自己封装一个得了 #pragma once #include <objbase.h> #in ...

  2. 我常用的前端开发工具—cutterman,mark man,sublime text,yeoman,gulp……

    虽然才刚刚开始练习切图,不过之前还是接触到不少工具的,决定一一用上,果然用了一天就切完了一个psd,对于一个菜鸟来说,还是很开心的. 我先从学ui网下载了一个psd.切图肯定是要用的ps的啦,这里和大 ...

  3. 【ABAP系列】SAP 生产订单完工确认(CO11N) BAPI : BAPI_PRODORDCONF_CREATE_TT

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP 生产订单完工确认(CO1 ...

  4. CEPH安装(CentOS 7)

    以包含四个节点的集群为例,其中包括一个 ceph-deploy 管理节点和一个三节点的Ceph存储集群. 下图中每个节点代表一台机器. 安装 CEPH 部署工具 执行如下命令: sudo yum in ...

  5. DataTable clone()和copy()的区别

    clone()只是复制表结构 copy()是深度复制,表结构和数据

  6. vue2.0 watch里面的 deep和immediate作用

    deep,默认值是 false,代表是否深度监听.immediate:true代表如果在 wacth 里声明了之后,就会立即先去执行里面的handler方法,如果为 false就跟我们以前的效果一样, ...

  7. 引入maven以外的jar包

    这里有2个案例,需要手动发出Maven命令包括一个 jar 到 Maven 的本地资源库. 要使用的 jar 不存在于 Maven 的中心储存库中. 您创建了一个自定义的 jar ,而另一个 Mave ...

  8. R语言基础篇——数据对象

    1.基本数据类型(numeric,logical,character,NA,double,complex,integer) 2.日期变量 常用函数 Sys.Date()-返回系统当前的日期,Sys.t ...

  9. Ribbon远程调用

    Ribbon是客户端的负载均衡机制,它有几种负载均衡机制.默认是轮询,我们也可以自定义规则.通过合理的分配网络请求来减小服务器的压力.项目都是注册到eureka服务器上.通过ribbon去调用其他服务 ...

  10. 2018-8-27-C#-powshell-调用

    title author date CreateTime categories C# powshell 调用 lindexi 2018-8-27 16:20:4 +0800 2018-06-18 20 ...