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

举报
兮动人 发表于 2021/08/14 10:02:18 2021/08/14
【摘要】 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时就会定位到指定的域名。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。