Apache反向代理企业级应用的核心是稳定、安全、可维护地按域名或路径精准路由请求至后端集群,并透传真实IP、协议及Host头,支持HTTPS终结、WebSocket和负载均衡。

一、按域名隔离多套业务系统
企业常有 admin.example.com、api.example.com、portal.example.com 等多个子域,各自对应独立后端。用 VirtualHost + ServerName 实现逻辑隔离:
- 每个
<VirtualHost *:80>或<VirtualHost *:443>块只绑定一个ServerName - 必须启用
ProxyPreserveHost On,否则后端收到的 Host 头会变成 127.0.0.1:3000,导致重定向错误或静态资源路径异常 - HTTP 和 HTTPS 虚拟主机要分开配置;HTTPS 端需加载证书,并确保
mod_ssl已启用
二、路径级代理与动静分离
单域名下不同路径指向不同服务(如 /auth → Keycloak,/files → MinIO,/ → React 前端),同时让 Apache 直接服务静态资源:
Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。
- 用
ProxyPass "/auth/" "http://keycloak:8080/"这类带尾部斜杠的写法,保证路径映射准确 - 静态文件(CSS/JS/图片)放在
DocumentRoot下,Apache 直接响应,不走代理,降低后端压力 - 避免路径冲突:例如
ProxyPass "/api"和ProxyPass "/"不能共存,后者会覆盖前者
三、透传客户端真实信息
后端应用依赖真实 IP 做风控、日志、限流,依赖 X-Forwarded-Proto 判断是否 HTTPS。默认 Apache 会覆盖这些头,需显式控制:
- 关闭自动注入:
ProxyAddHeaders Off - 手动设置:
RequestHeader set X-Forwarded-For "%{REMOTE_ADDR}e" - HTTPS 终结时加:
RequestHeader set X-Forwarded-Proto "https" - 若后端信任内网 Apache,可配合
RemoteIPHeader X-Forwarded-For和RemoteIPInternalProxy 10.0.0.0/8解析真实 IP
四、高可用与连接优化
企业级场景要求抗压、容错、低延迟。Apache 本身不拆解单请求,但可通过以下方式提升并发吞吐:
- 为每个
ProxyPass目标添加连接池参数:ProxySet keepalive=On timeout=30 max=20 retry=60 - 多后端用
balancer://集群,配合stickysession保持会话一致性(如 JSESSIONID) - 启用
mod_proxy_wstunnel支持 WebSocket 升级(Upgrade: websocket请求) - MPM 模式建议用
event(非 prefork),更适配高并发反向代理场景

















