nginx配置禁止IP直接访问
问题
最近搭了个博客小网站,技术栈采用的是nginx+hexo的路线,遇一个问题:
网站,通过域名可以访问,但通过IP也可以访问,如何禁掉IP访问呢?
多方搜索和尝试,大致有这么几个方案:
方案一
在每个域名配置的server块中,添加域名访问判断,比如:
1 |
|
试了一下,OK了,http://IP 和 https://IP 这两种访问方式,都被拦截了。
但这种方案有个缺点:每个server块都得添加。
参考这儿:nginx配置禁止IP访问
方案二
在nginx.conf加一个默认返回403的server块:
1 |
|
输入http://IP访问,发现能返回403了;但输入https://IP访问,发现依然能打开网址,浏览器端显示“不安全”字样,也就是没有解决掉SSL访问返回403的问题。
参考这儿:Nginx 禁止 IP 访问并防止泄漏 SSL 证书 | 追殇 Coding
由于我的nginx配置中有4个server,很奇怪,不管怎样,server_name始终会匹配到一个server上,而不是default_server,甚是奇怪,只能在443的server块中,添加IP判断。
nginx配置禁止IP直接访问
https://www.kisstools.com/2024/11/30/experiences/nginx配置禁止IP直接访问/