我有一个运行于的 Web 服务器192.168.1.100
和一个运行于的 Apache 2.2 代理192.168.1.1
如果我的 Web 服务器正在监听标准端口 80,那么我可以成功发出 HTTP 请求
GET http://192.168.1.100/ HTTP/1.1
Host: 192.168.1.100
并返回响应。但是,如果我的 Web 服务器运行在非标准端口(如 12345)上,那么我向代理发出的请求
GET http://192.168.1.100:12345/ HTTP/1.1
Host: 192.168.1.100:12345
失败并返回 404。当 Web 服务器在端口 80 或 12345 上运行时,我可以直接访问此页面;当 Web 服务器在端口 80 上运行时,我可以通过代理访问此页面;但当 Web 服务器在端口 12345 上运行时,我无法通过代理访问此页面。
我是否需要设置某种 Apache 配置以允许请求通过非标准端口发送到 Web 服务器?
编辑:我应该说明,我需要一个通用的正向代理,除了在非标准端口上运行的这些本地站点之外,它还可以访问互联网上的任何站点,因此,如果不为每个内部网站添加配置,我就不能简单地设置一个反向代理。
答案1
反向代理
ProxyRequests Off
ProxyPreserveHost On
ProxyPass / http://server.com:12345/
ProxyPassReverse / http://server.com:12345/
-- 即使前面没有 / 也可能有效,但这是写入文档的方式。 http://httpd.apache.org/docs/2.2/mod/mod_proxy.html