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

本小妞迷上赌 提交于 2019-12-01 09:43:32

我的一个地方站(www.cxzaixian.com)曾经遇到过被无故断网的事情,阿里云给的原因是绑定了未备案的域名。

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

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

有必要说明一下,本站用的阿里云的虚拟主机,软件环境是:linux+nginx+mysql+php。因为本文是说明怎么在nginx服务器配置禁止ip访问。

方案如下:

1.增加server模块,第一句 listen 80 default 就禁掉了ip访问,第二句标示如果通过ip访问或者nginx未解析的域名访问 则返回500错误。

2. 如果把ip访问和未解析域名访问转到你自己的域名,从而带来一些额外流量,则如下配置(logo条纹挡住的词是:permanent):

3.加上以上配置之后会带来一个问题,通过cxzaixian.com不能访问了,www.cxzaixian.com没有问题,配置改为如下即可解决:

原文发布于微信公众号 - nginx(nginx-study)

原文发表时间:2015-05-16

本文出处https://cloud.tencent.com/developer/article/1181566

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!