nginx只允许域名访问,禁止ip访问

318 阅读1分钟

背景:

为什么要禁止ip访问页面呢?
这样做是为了避免其他人把未备案的域名解析到自己的服务器IP,而导致服务器被断网,我们可以通过禁止使用ip访问的方法,防止此类事情的发生。

解决方法:

这里介绍修改配置文件nginx.conf两种方法:

方法一:在server段里插入如下正则:

listen       80;
server_name  www.summergao.com;
if ($host != 'www.summergao.com'){
   return 403;
}

方法二:添加一个server

新加的server(注意是新增,并不是在原有的server基础上修改)

server {
  listen 80 default;
  server_name _;
  return 403;
}

原来server里面插入:

listen       80;
server_name  www.summergao.com;

修改后的文件如下:(这里启用的方法二)

#设置不允许Ip访问(方法二)
server {
  #listen 80 default_server;
  listen 80 default;
  return 403;
}

server {
  listen 80;
  #server_name  localhost;
  server_name www.summergao.com;
  
  #禁止Ip访问(方法一)
  #listen 80;
  #server_name www.summergao.com;
  #if($host != 'www.summergao.com' ){
  #  return 403;
  #}
  
}

设置成功后,就只能用域名访问网站,不能用ip访问了。

参考:

www.cnblogs.com/weifeng1463…