如何在不重定向的情况下使用mod_proxy设置反向代理?

时间:2009-05-28 00:32:58

标签: apache .htaccess mod-rewrite reverse-proxy mod-proxy

如何在不重定向到其他服务器或IP的情况下使用mod_proxy设置反向代理?这将是一个虚拟主机环境。我想这样做的原因是mod_proxy处理与客户端浏览器的通信,从而释放Web服务器进程以提供下一个请求,而不是提供客户端的浏览器。当使用mod_php等语言模块与MPM Prefork时,这一点尤为重要。我想要实现的流程是:   1.流量通过端口80解析到www.mydomain.com。   2.代理发送请求Web服务器。   3. Web服务器将答案发送回代理并断开与代理的连接。   4.代理提供客户端浏览器。

一旦工作,我想在相同的IP地址添加nginx,但是在同一台服务器上将端口81和代理图像请求添加到nginx。我不希望nginx处理代理,我也不想要任何FCGI。我希望我的标准Apache mod_rewrite和.htaccess可以工作。

谢谢Tons!

2 个答案:

答案 0 :(得分:3)

只需重定向到其他端口上的localhost即可?在端口8080上托管您的应用程序,并使用mod_proxy转发请求:

ProxyPass /foo http://localhost:8080/foo
ProxyPassReverse /foo http://localhost:8080/foo

如果您有处理请求的应用程序服务器并且您希望在一台计算机上组合多个实例,这可能会有所帮助。每个应用程序服务器可以使用一个端口。

我不知道它是否真的比直接使用mod_php更快。代理请求也增加了开销。

答案 1 :(得分:0)

确保您还使用加载这两个模块

LoadModule proxy_module bin/mod_proxy.so 
LoadModule proxy_http_module bin/mod_proxy_http.so

ProxyPass /TeamCity http://localhost/TeamCity
ProxyPassReverse /TeamCity http://localhost/TeamCity
相关问题