一、前言
为何禁止IP访问呢?
1、这样是为了避免别人把未备案的域名解析到自己的服务器IP而导致服务器被断网。
2、
二、修改Nginx配置文件
1、打开配置文件
一般Ngnix的配置文件放在/usr/local/nginx/conf/目录下,使用如下指令打开配置文件:
vim /usr/local/nginx/conf/nginx.conf
2、修改配置文件
在server中添加如下代码:
if ($host ~ "\d+\.\d+\.\d+\.\d") {
return 404;
}
插入位置如下图所示:
server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/html;
index index.html index.htm index.nginx-debian.html;
server_name _;
# ~后面跟着的是正则表达式,匹配的是IP,如果匹配到了IP,则返回404,禁止其访问
if ($host ~ "\d+\.\d+\.\d+\.\d") {
return 404;
}
location / {
try_files $uri $uri/ /index.html;
}
}
3、重启Nginx服务
使用如下指令重新加载配置文件服务:
service nginx reload
reload --重新加载,reload会重新加载配置文件,Nginx服务不会中断。而且reload时会测试conf语法等,如果出错会rollback用上一次正确配置文件保持正常运行。
restart --重启(先stop后start),会重启Nginx服务。这个重启会造成服务一瞬间的中断,如果配置文件出错会导致服务启动失败,那就是更长时间的服务中断了。
所以,如果是线上的服务,修改的配置文件一定要备份。为了保证线上服务高可用,最好使用reload。
三、配置结果
配置好后,使用IP访问自己的网站,会看到类似如下图所示的效果:
404 Not Found
------
nginx/1.18.0 (Ubuntu)