Apache反向代理转发API的核心是用ProxyPass和ProxyPassReverse精准路由路径(如/api),需启用mod_proxy、mod_proxy_http等模块,配置中须保持路径斜杠一致,并手动注入X-Forwarded-For和X-Forwarded-Proto头以传递真实客户端信息。

Apache 反向代理转发 API 接口,核心是用 ProxyPass 和 ProxyPassReverse 把特定路径(比如 /api)的请求精准转给后端服务(如 Node.js、Python 或 Java 应用),同时保持 Host 头、协议、路径一致性,避免跨域或跳转错误。
确保必要模块已启用
缺一不可:
-
mod_proxy:代理主模块 -
mod_proxy_http:支持 HTTP/HTTPS 后端通信(绝大多数 API 场景必需) -
mod_ssl:如果前端是 HTTPS(含宝塔面板常见场景)必须启用 -
mod_proxy_wstunnel:若 API 含 WebSocket(如/api/ws)需额外加载
Debian/Ubuntu 执行:sudo a2enmod proxy proxy_http ssl proxy_wstunnel && sudo systemctl restart apache2
CentOS/RHEL 检查 /etc/httpd/conf.modules.d/ 下对应 LoadModule 行是否启用,或手动添加后重启 httpd。
按域名或路径配置转发规则
推荐在虚拟主机配置块内设置,不写全局配置,更安全清晰:
- 若整个域名只服务一个 API(如
api.example.com):
<VirtualHost *:80><br> ServerName api.example.com<br> ProxyPreserveHost On<br> ProxyRequests Off<br> ProxyPass / http://127.0.0.1:3000/<br> ProxyPassReverse / http://127.0.0.1:3000/<br> </VirtualHost>
- 若主站带子路径 API(如
www.example.com/api):
ProxyPass /api http://127.0.0.1:3000/api<br> ProxyPassReverse /api http://127.0.0.1:3000/api
注意:前后路径末尾斜杠必须严格一致(都带或都不带),否则可能触发 301 跳转或路径错位。
传递真实客户端信息
后端常需识别用户真实 IP 和访问协议(尤其 HTTPS 终结时),默认 Apache 会覆盖这些头,需显式注入:
Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。
- 禁用自动添加的
X-Forwarded-*头(避免重复或污染):ProxyAddHeaders Off - 手动注入真实 IP:
RequestHeader set X-Forwarded-For "%{REMOTE_ADDR}e" - 注入协议类型(HTTPS 网站必须加):
RequestHeader set X-Forwarded-Proto "https"
这些行放在 <VirtualHost> 块内,紧邻 ProxyPass 规则下方即可。
宝塔等可视化面板实操要点
宝塔用户无需手改 httpd.conf,直接进网站 →「设置」→「配置文件」:
- 找到
<VirtualHost *:443>块(HTTPS 站点)或*:80块 - 在
DocumentRoot行之后、</VirtualHost>之前插入代理规则 - 务必确认「模块管理」中已勾选
proxy和proxy_http(宝塔默认常未启用) - 保存后点击「重启 Apache」,再清浏览器缓存测试
不复杂但容易忽略。

















