251019-Nginx域名绑定-WFW禁止IP访问

Nginx配置域名地址/非域名禁止

  • 配置Nginx: 编辑Nginx配置文件,通常位于/etc/nginx/sites-available/目录下,创建一个新的配置文件(如yourdomain.com
    ),并添加以下内容:

这里通过if语句限制了只有域名访问才允许通过,否则返回403错误。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
server {
listen 80;
server_name yourdomain.com;

location / {
proxy_pass http://localhost:8080; # 假设Spring Boot应用运行在8080端口
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

if ($host != 'yourdomain.com') {
return 403;
}
}
  • 启用配置并重启Nginx
1
2
3
sudo ln -s /etc/nginx/sites-available/yourdomain.com /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx

方法三:使用防火墙规则

  1. 安装并启用UFW防火墙

    1
    2
    sudo apt-get install ufw
    sudo ufw enable
  2. 配置UFW规则: 允许域名访问,但拒绝直接通过IP访问。可以通过以下命令允许特定域名的解析IP访问,同时拒绝其他IP访问:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    sudo ufw allow from <域名解析的IP地址>
    sudo ufw deny from <其他IP地址>

    允许特定IP地址访问指定端口
    sudo ufw allow from 192.168.0.1000 to any port 8080

    拒绝其他IP地址访问该端口
    sudo ufw deny from any to any port 8080

    检查和启用防火墙规则
    sudo ufw status
    sudo ufw enable

但这种方法需要知道域名解析的具体IP地址,并且如果域名解析的IP地址发生变化,需要手动更新防火墙规则