Nginx设置禁止使用IP直接访问网站
最近博主在后台看网站的统计数据时,发现有些访问是直接通过IP地址访问的,而不是博主网站的域名
www.huluohu.com
,考虑到现在大陆的网络管控越来越严,要是有人恶意把没备案的域名解析到博主的IP上可就麻烦大了。所以说干就干,看看如何设置Nginx,禁止通过IP直接访问网站。
一般来说,配置SSL证书的网站,使用IP访问时,浏览器都会先拦截提醒,只有用户主动信任证书并点击继续访问
后,才能打开网站。但是对于网站站长来说还是存在一定风险性的,主要是以下2点:
- 被没备案的域名恶意解析,存在被断网风险
- 攻击者可以通过
https://ip
获取网站的证书信息及绑定的域名,存在潜在风险
使用ip直接访问博主的网站时浏览器的提示
配置方法
不让用户直接通过ip访问网站也存在2种情况,即http和https,所以80和443端口都要考虑。
建议Nginx升级到
1.19.4
以上版本,低版本在配置443端口时会比较麻烦。
- 进入nginx目录
cd your_nginx_conf_dir
- 使用vim打开
nginx.conf
配置文件vim ngnix.conf
- 在末尾加上以下配置,注意是
添加
server { listen 80 default; server_name _; return 403; } server { listen 443 default_server; server_name _; # 直接拒绝握手 ssl_reject_handshake on; }
- 然后重新加载配置
nginx -s reload
效果
现在重新用IP去访问网站,会直接到403页面