首页 > nginx > nginx禁止未绑定域名访问

nginx禁止未绑定域名访问

2012年9月17日 发表评论 阅读评论

nginx 只允许某些域名访问 其他一律不能访问 ,是怎么写的?

对于这个问题可以参考官方文档

原文

In catch-all server examples the strange name “_” can be seen:

There is nothing special about this name, it is just one of a myriad of invalid domain names which never intersect with any real name. Other invalid names like “--” and “!@#” may equally be used.

 

解释:

在这个server段实例可以看到:奇怪的server_name名字“ _ “

其实这个名字没有什么特别的,它仅仅是一个许多无效的域名中的一个代表,与任何真实的名字永远不会相交。其它无效的名称,如“ “ 和” !@# “也可同样使用。
default_server:nginx的虚拟主机是通过HTTP请求中的Host值来找到对应的虚拟主机配置,如果找不到呢?那 nginx就会将请求送到指定了 default_server 的 节点来处理

对于未绑定的域名指向你的服务器时,匹配不到你配置的虚拟主机域名后,会默认使用这个虚拟主机,然后直接返回404。

把这个server段配置添加你的nginx.conf即可

分类: nginx 标签: ,
  1. Jason
    2018年6月13日15:22 | #1

    我这样配置之后 所有得网站都不可以访问了

  2. 秋叶
  3. 有个问题
    2018年3月16日19:29 | #3

    server {
    listen 8080 default_server;
    server_name _;
    return 444;
    }
    设置了这个未绑定这个端口的域名不能访问,但是,服务器上其他的域名加上8080端口居然能访问那个8080的网站?这是什么原因?

  4. ff
    2015年9月23日16:37 | #4

    顶一个吧

  5. 2015年2月5日22:21 | #5

    这个和空主机名""一样效果的吧?

  6. 2013年11月23日15:54 | #6

    终于解决了

  7. 2013年8月3日00:51 | #7

    这个好,帮我了一个忙

  1. 2012年12月26日11:39 | #1
  2. 2013年10月29日20:35 | #2
  3. 2014年3月11日15:37 | #3