当前位置:首页 > 服务器技术 > 正文

Nginx反向代理IP黑名单(手把手教你阻止恶意访问)

在当今的互联网环境中,保护服务器安全至关重要。如果你使用 Nginx 作为反向代理服务器,那么通过设置 IP黑名单 来阻止恶意用户或爬虫是一种非常有效的方法。本教程将从零开始,一步步教你如何在 Nginx 中配置 IP 黑名单,即使你是新手也能轻松上手。

Nginx反向代理IP黑名单(手把手教你阻止恶意访问) Nginx反向代理 IP黑名单 网络安全 Nginx配置 第1张

什么是 Nginx 反向代理?

Nginx 反向代理 是指 Nginx 接收客户端请求后,将请求转发给后端服务器(如应用服务器、API 服务等),再将后端响应返回给客户端。这种方式不仅可以提高性能、负载均衡,还能增强安全性。

为什么需要 IP 黑名单?

某些 IP 地址可能频繁发起攻击、暴力破解、爬取敏感数据等行为。通过将这些 IP 加入 IP黑名单,你可以直接拒绝它们的访问,从而提升 网络安全 等级,减少服务器资源浪费。

准备工作

  • 一台已安装 Nginx 的服务器(Linux 系统常见)
  • SSH 访问权限(用于编辑配置文件)
  • 需要屏蔽的恶意 IP 地址列表

步骤一:创建黑名单文件

首先,我们创建一个专门存放黑名单 IP 的文件,方便管理。建议放在 /etc/nginx/ 目录下:

# 创建黑名单文件sudo nano /etc/nginx/blacklist.conf  

在打开的文件中,按如下格式添加要屏蔽的 IP(每行一个):

deny 192.168.1.100;deny 203.0.113.45;deny 198.51.100.0/24;  # 屏蔽整个子网  

保存并退出(在 nano 中按 Ctrl+O 回车,再按 Ctrl+X)。

步骤二:在 Nginx 配置中引入黑名单

接下来,我们需要修改你的站点配置文件(通常位于 /etc/nginx/sites-available//etc/nginx/conf.d/)。

假设你的反向代理配置如下:

server {    listen 80;    server_name example.com;    location / {        proxy_pass http://backend_server;        proxy_set_header Host $host;        proxy_set_header X-Real-IP $remote_addr;    }}  

现在,在 server 块的顶部加入一行 include 指令,引入黑名单文件:

server {    listen 80;    server_name example.com;    include /etc/nginx/blacklist.conf;  # ← 在这里引入黑名单    location / {        proxy_pass http://backend_server;        proxy_set_header Host $host;        proxy_set_header X-Real-IP $remote_addr;    }}  

步骤三:测试并重载 Nginx

修改配置后,务必先测试语法是否正确,避免 Nginx 启动失败:

sudo nginx -t  

如果看到 test is successful,说明配置无误。接着重载 Nginx 使配置生效:

sudo systemctl reload nginx  

验证黑名单是否生效

你可以从被屏蔽的 IP 尝试访问网站,应该会看到 403 Forbidden 错误页面。这表示 Nginx 配置 已成功拦截该 IP。

小贴士

  • 可以定期更新 blacklist.conf 文件,无需重启 Nginx,只需重载即可。
  • 结合 Fail2ban 等工具可自动将多次失败登录的 IP 加入黑名单。
  • 注意:确保你没有把自己常用 IP 误加入黑名单!

总结

通过本教程,你已经学会了如何在 Nginx 反向代理 中配置 IP黑名单,有效提升服务器的 网络安全 防护能力。这种简单而强大的方法,是每个运维人员都应掌握的基础技能。希望这篇教程对你有帮助!

关键词:Nginx反向代理、IP黑名单、网络安全、Nginx配置