一、前言

为何禁止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)