在部署 Web 应用时,我们常常使用 Nginx 作为反向代理服务器。为了增强安全性,限制只有特定 IP 地址才能访问后端服务是一种非常有效的手段。本文将详细讲解如何在 Nginx 中配置 IP 白名单,实现对反向代理请求的访问控制。无论你是运维新手还是开发人员,都能轻松上手!
Nginx 作为高性能的 Web 服务器和反向代理工具,可以接收客户端请求,并将这些请求转发给后端应用服务器(如 Node.js、Python Flask、Java Spring 等),再将响应返回给客户端。这种架构不仅提升了性能,还能隐藏后端真实服务器信息。
在某些场景下(例如内部 API 接口、管理后台、测试环境等),我们只希望特定的 IP 地址(如公司办公网、运维人员 IP)能够访问服务。通过配置 IP 白名单,可以有效防止未授权访问,是 Nginx 安全配置 的重要一环。
在终端执行以下命令:
nginx -v
如果看到版本号,说明 Nginx 已安装。
通常配置文件位于 /etc/nginx/nginx.conf 或站点配置在 /etc/nginx/sites-available/ 目录下。假设我们要保护一个反向代理到本地 3000 端口的服务,编辑对应的 server 块:
server { listen 80; server_name example.com; location / { # 设置允许的 IP(白名单) allow 192.168.1.100; # 允许公司内网某台机器 allow 203.0.113.25; # 允许某个公网 IP allow 127.0.0.1; # 允许本地回环 deny all; # 拒绝其他所有 IP # 反向代理配置 proxy_pass http://127.0.0.1:3000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; }} 上述配置中:
- allow 表示允许访问的 IP;
- deny all 表示拒绝其余所有 IP;
- 这些规则会按顺序匹配,一旦匹配成功就停止。
先检查配置语法是否正确:
nginx -t
如果显示 "syntax is ok",则重载配置:
sudo nginx -s reload
从白名单中的 IP 访问网站应正常;从其他 IP 访问会收到 403 Forbidden 错误。这说明 访问控制 已生效。
当白名单 IP 较多时,可单独创建一个文件管理,便于维护:
# 创建白名单文件sudo nano /etc/nginx/whitelist.conf
内容如下:
allow 192.168.1.0/24;allow 203.0.113.0/24;allow 127.0.0.1;deny all;
然后在 Nginx 配置中引入:
location / { include /etc/nginx/whitelist.conf; proxy_pass http://127.0.0.1:3000; ...} X-Real-IP 或 X-Forwarded-For 头正确传递真实客户端 IP,否则白名单可能基于代理 IP 判断而失效。real_ip 模块以获取真实 IP。通过本文,你已掌握如何在 Nginx 反向代理中配置 IP 白名单,这是保障服务安全的基础措施之一。合理使用 Nginx 安全配置 和 访问控制 策略,能显著降低被攻击风险。希望这篇教程对你有帮助!
关键词:Nginx反向代理, IP白名单, Nginx安全配置, 访问控制
本文由主机测评网于2025-12-01发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://vpshk.cn/2025121599.html