nginx禁止ip访问, 只能通过域名访问

nginx配置防止域名恶意解析

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

归结到技术层面,原因是如果网站允许ip直接访问,那么即使没有在nginx配置中解析恶意的未备案域名,这个域名也是可以访问到你的网站。

相关部门进行核查时,会以为你为未备案域名提供主机服务,后果就是封掉的ip。所以,你需要禁止ip访问,只允许你自己配置的server模块的server_name访问。这样即使未备案域名绑定了你的ip,也访问不了你的网站。

  1. 首先,编辑nginx的配置文件nginx.conf,增加server模块,第一句 listen 80 default 就禁掉了ip访问,第二句标示如果通过ip访问或者nginx未解析的域名访问 则返回500错误。
server {
		listen 80 default;
		return 500;
	}
  1. 如果把ip访问和未解析域名访问转到你自己的域名,从而带来一些额外流量,则如下配置:
server {
		listen 80 default;
		rewrite ^(.*) http://www.yunxr.top/ permanent;
	}

这时当访问ip时就会定位到指定的域名。

原文地址:https://www.cnblogs.com/xdr630/p/15255042.html