Nginx禁止未绑定域名和IP访问HTTP/HTTPS
Nginx安装配置完毕后,通过IP是可以直接访问服务器的网站的,就算server配置文件都指定了域名,IP依旧可以访问最先读取到的server配置站点,并且其他未绑定的域名解析到这台服务器,是可以访问最先读取到的server配置站点。
用以下方法可以解决这个问题:
解决办法
1、新建一个server
配置文件如下:
server {
listen 80 default_server; #80端口默认站点
###注意:如果不配置HTTPS,那么访问 https://ip 依旧能访问到最先读取到的含有HTTPS配置的server站点。
listen 443 ssl http2 default_server; #443端口默认站点
###注意:配置SSL不配置证书会出现协议错误,必须有。可以是自签证书。
ssl_certificate /usr/local/nginx/conf/ssl/example.cer;
ssl_certificate_key /usr/local/nginx/conf/ssl/example.key;
server_name _; # _ 匹配无效的主机名称,这样就不会影响正在工作的站点啦
return 444; #返回的状态码,也可以为404,403等
}
这里的 defalut_server
是指Nginx通过HTTP请求中的Host值来找到对应的虚拟主机配置 ,当找不到主机名会送到指定的 default_server
的节点来处理。在通过IP访问的时候,如果没有配置 default_server
,会访问到最先匹配到的server配置站点。
2、重启Nginx服务
平滑重启Nginx服务
service nginx reload
最后更新于 2018-07-11 01:13:30 并被添加「」标签,已有 8419 位童鞋阅读过。
本站使用「署名 4.0 国际」创作共享协议,可自由转载、引用,但需署名作者且注明文章出处