一 背景

为什么要禁止ip访问?
为了避免其他人把未备案的域名解析到自己的服务器IP,而导致服务器被断网,我们可以通过禁止使用ip访问的方法,防止此类事情的发生。


二 解决方法

修改配置文件nginx.conf,

其中2.2的方法可以参考 ​​ubuntu18.04+Nginx+uwsgi+Django介绍和部署_许进进的博客博客​​ 这篇博文中的your_project_nginx.conf文件配置,是一样的道理。

2.1 在server段里插入如下正则:

{
listen 80;
server_name www.yanyou.club;
if ($host != 'www.yanyou.club'){
return 403;
}

2.2 添加一个server

新加的server(注意是新增,并不是在原有的server基础上修改)

server {
listen 80 default;
server_name _;
return 403;
}

原来server里面插入:

listen       80;
server_name www.yanyou.club;

2.3 效果

nginx配置域名访问/禁止ip访问_tcp/ip

设置成功后,就只能用域名访问网站,不能用ip访问了。

三 实例配置:

[root@lucas conf.d]# cat lucas.conf
server {
listen 80 default;
server_name _;
return 403;
}

或者 ​​ubuntu18.04+Nginx+uwsgi+Django介绍和部署_许进进的博客-客​​ 这篇博文中的your_project_nginx.conf文件配置实例(结合了django项目的):

server {
listen 8001;
server_name www.yanfriends.com;
charset utf-8;
client_max_body_size 75M;

location /static {
alias /home/yanfriends_server/static;
}

location /media {
alias /home/yanfriends_server/;
}

location / {
uwsgi_pass 127.0.0.1:8002;
include /etc/nginx/uwsgi_params;
}
}

参考文章:

​Nginx禁止IP访问,只允许域名访问 - 简书​