用Nginx搭建WEB服务 只能通过域名 禁止使用ip访问

经常遇到过其他域名解析到自己的IP上,特别是不是全新的IP段上面解析的域名更多,我们可以通过禁止使用ip访问的方法,防止此类事情的发生。在之前简介过用Apache搭建的WEB主机 如何设置只能通过域名访问 禁止使用ip访问的方法,今天说说Nginx搭建WEB服务。

在server的设置里面添加这一行:

listen 80 default;

后面的default参数表示这个是默认空间。

这个设置非常有用。

比如别人通过ip或者未知域名访问你的网站的时候,你希望禁止显示任何有效内容,可以给他返回500。

网站主关闭空服务器头,防止未备案的域名指向过来造成麻烦。就可以这样设置:

  1. server {
  2. listen 80 default;
  3. return 500;
  4. }

也可以把这些流量收集起来,导入到自己的网站,只要做以下跳转设置就可以:

  1. server {
  2. listen 80 default;
  3. rewrite ^(.*) http://www.本站.com permanent;
  4. }

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

设置如下:

没更改之前,通过server_name 中的www.本站.com xxx.com均可访问主机,加入禁止IP访问的设置后,通过xxx.com无法访问主机了,www.本站.com可以访问

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

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

  1. #禁止IP访问
  2. server{
  3. listen 80 default;
  4. server_name _;
  5. return 500;
  6. }

或者

  1. server {
  2. listen 80 dufault;
  3. server_name _;
  4. rewrite ^(.*) http://www.本站.com permanent;
  5. }

这样,通过本站.com就能访问主机了,问题解决了。

这个方法其实非常的简单,本站也是看着之后感觉还不错,对于自己也是非常有所的,对于具体是谁首发不清楚,毕竟现在多数的教程都是一大堆的,有些需要自己去实践可行性,有些已经不适合了!

推荐站内搜索:服务器、备案 查询、永久免费的香港服务器、免费域名注册、美国虚拟主机、备案注销、域名注册查询、php空间租用、ip查看、工信部域名备案、