无需登录 数据私有 本地保存

反向代理配置生成器 - Nginx/Apache 规则输出

3
0
0
0

反向代理配置生成器

快速生成 Nginx / Apache 反向代理规则,支持 SSL、WebSocket、负载均衡等高级配置

选择 Web 服务器
基础配置
后端服务的完整 URL,包含协议和端口
SSL / WebSocket
启用 SSL / HTTPS
启用 WebSocket 支持
为不同 URL 路径指定不同的后端服务(微服务场景)
启用负载均衡
nginx-reverse-proxy.conf
# 配置将在此实时预览...

常见问题与知识点

反向代理(Reverse Proxy)是位于客户端和后端服务器之间的中间层服务器。客户端请求先到达反向代理,再由代理将请求转发到后端服务器,并将响应返回给客户端。

主要优势:
  • 负载均衡:将流量分发到多个后端服务器
  • 安全防护:隐藏后端服务器真实IP,防御DDoS攻击
  • SSL 终止:在代理层处理HTTPS加解密,减轻后端压力
  • 缓存加速:缓存静态/动态内容,提升响应速度
  • 统一入口:一个域名下整合多个微服务

Nginx 采用事件驱动异步架构,在高并发场景下内存占用更少,性能更优。适合:高并发Web服务、API网关、WebSocket代理、流媒体。

Apache 基于进程/线程模型,配合 mod_proxy 模块功能成熟稳定。适合:需要 .htaccess 灵活性、与现有Apache生态集成、复杂访问控制规则的场景。

现代部署中 Nginx 更受欢迎,但两者都能胜任反向代理任务。选择取决于团队熟悉度和具体需求。

WebSocket 需要 HTTP/1.1 协议的 Upgrade 机制。在 Nginx 中,需在 location 块中添加:
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";

这三行确保 Nginx 正确处理 WebSocket 握手请求,维持长连接。本工具勾选"WebSocket支持"即可自动生成对应配置。

X-Forwarded-For 是一个HTTP头,用于记录客户端的真实IP地址。当请求经过反向代理时,后端服务器看到的来源IP是代理服务器的IP。通过设置此头,可以将原始客户端IP逐级传递给后端。

Nginx: proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
Apache: RequestHeader set X-Forwarded-For expr=%{REMOTE_ADDR}

此外 X-Real-IP(Nginx)和 X-Forwarded-Proto(协议信息)也是常用头。

502错误表示代理无法从后端服务器获取有效响应。常见原因:
  1. 后端服务未启动 — 检查后端进程是否在运行
  2. 端口错误 — 确认 proxy_pass 中的端口与后端监听端口一致
  3. 防火墙/安全组 — 确保代理服务器能访问后端端口
  4. 超时设置过短 — 增大 proxy_read_timeout / ProxyTimeout
  5. 后端崩溃 — 检查后端应用日志和错误信息
  6. SELinux/AppArmor — 某些Linux安全模块会阻止网络连接

Nginx 使用 upstream 块定义后端服务器组,支持轮询(默认)、权重、IP哈希、最少连接等算法。

Apache 使用 <Proxy balancer://> 配合 BalancerMember 定义后端节点,通过 mod_proxy_balancer 实现。

本工具的负载均衡功能可自动生成对应的 upstream/BalancerMember 配置,只需添加多个后端服务器地址即可。

超时设置取决于后端应用特性:
  • 短连接API:连接超时5-10秒,读取超时30-60秒
  • 长时间处理任务:读取超时设300秒以上
  • 文件上传:适当增大 client_max_body_size 和超时
  • WebSocket:需要较长的读取超时(如3600秒)以维持长连接
  • 避免过短:过短的超时会导致正常请求被中断

Nginx 做法是创建一个单独的 server 块监听80端口,使用 return 301 https://$host$request_uri; 进行永久重定向。

Apache 在 VirtualHost *:80 中使用 Redirect permanent / https://domain/ 或 RewriteRule 实现。

本工具在启用SSL时可选"包含HTTP→HTTPS重定向",自动生成对应的重定向配置块。

多路径代理(路径映射)常用于微服务架构中,将同一域名下不同URL路径转发到不同后端服务:
  • /api/users → 用户服务 (端口3001)
  • /api/orders → 订单服务 (端口3002)
  • /admin → 管理后台 (端口4000)
  • /static → 静态资源CDN或文件服务器
通过本工具的"多路径代理映射"功能,可灵活配置多个路径和后端对应关系。

Nginx:通常放在 /etc/nginx/sites-available/ 下,然后创建符号链接到 /etc/nginx/sites-enabled/。或直接编辑 /etc/nginx/conf.d/ 下的 .conf 文件。修改后执行 nginx -t 测试配置,nginx -s reload 重载生效。

Apache:通常放在 /etc/apache2/sites-available/(Debian/Ubuntu)或 /etc/httpd/conf.d/(RHEL/CentOS)。使用 a2ensite 启用站点,apachectl configtest 测试,systemctl reload apache2 重载。

务必在应用配置前测试,避免语法错误导致服务中断。