经常遇到过其他域名解析到自己的IP上,特别是不是全新的IP段上面解析的域名更多,我们可以通过禁止使用ip访问的方法,防止此类事情的发生。在之前介绍过用Apache搭建的WEB服务器 如何设置只能通过域名访问 禁止使用ip访问的方法,今天说说Nginx搭建WEB服务。
在server的设置里面添加这一行:
listen 80 default;
后面的default参数表示这个是默认虚拟主机。
这个设置非常有用。
比如别人通过ip或者未知域名访问你的网站的时候,你希望禁止显示任何有效内容,可以给他返回500。
网站主关闭空主机头,防止未备案的域名指向过来造成麻烦。就可以这样设置:
- server {
- listen 80 default;
- return 500;
- }
也可以把这些流量收集起来,导入到自己的网站,只要做以下跳转设置就可以:
- server {
- listen 80 default;
- rewrite ^(.*) http://www.xqblog.com permanent;
- }
按照如上设置后,确实不能通过IP访问服务器了,但是在应该用中出现当server_name
后跟多个域名时,其中一个域名怎么都无法访问:
设置如下:
没更改之前,通过server_name
中的www.xqblog.com
xxx.com
均可访问服务器,加入禁止IP访问的设置后,通过xxx.com
无法访问服务器了,www.xqblog.com
可以访问
用 nginx -t
检测配置文件会提示warning:
最后通过在listen 80 default;
后再加server_name _;
解决,形式如下:
- #禁止IP访问
- server{
- listen 80 default;
- server_name _;
- return 500;
- }
或者
- server {
- listen 80 dufault;
- server_name _;
- rewrite ^(.*) http://www.xqblog.com permanent;
- }
这样,通过xqblog.com就能访问服务器了,问题解决了。
这个方法其实非常的简单,小七也是看着之后感觉还不错,对于自己也是非常有所的,对于具体是谁首发不清楚,毕竟现在多数的教程都是一大堆的,有些需要自己去实践可行性,有些已经不适合了!