在Apache上配置多反向代理:将3456端口服务代理至/bar的最佳方案
Apache反向代理新增服务的最佳实现策略
有两种清晰的实现方式,推荐优先选择独立配置文件的方案,便于后续维护:
方案一:新建独立配置文件(推荐)
在httpd/conf.d目录下创建bar.conf文件,写入以下配置:
<VirtualHost *:80> # 保留原有的根路径跳转规则(不需要可删除) RewriteEngine on RewriteRule ^/?$ /foo/ [R=permanent,L] # 新增/bar路径的反向代理配置 <Location "/bar"> ProxyPass http://localhost:3456 </Location> ProxyPassReverse /bar http://localhost:3456 ProxyPreserveHost On </VirtualHost>
注:Apache会自动合并同端口的虚拟主机配置,所以这里的
<VirtualHost *:80>会和原foo.conf的配置合并,也可以把RewriteRule只保留在一个配置里避免重复。
方案二:修改现有foo.conf配置
直接在已有的foo.conf中添加/bar相关的代理规则,修改后配置如下:
<VirtualHost *:80> RewriteEngine on RewriteRule ^/?$ /foo/ [R=permanent,L] <Location "/foo"> ProxyPass http://localhost:3000 </Location> ProxyPassReverse /foo http://localhost:3000 # 新增bar服务的代理配置 <Location "/bar"> ProxyPass http://localhost:3456 </Location> ProxyPassReverse /bar http://localhost:3456 ProxyPreserveHost On </VirtualHost>
收尾步骤
- 保存配置后,重启Apache服务生效(命令根据系统调整,比如
systemctl restart httpd或service apache2 restart) - 访问
http://myserver/bar测试是否能正常跳转至3456端口的服务
内容的提问来源于stack exchange,提问作者HufflepuffBR
相关产品推荐
相关产品推荐

