在apache http服务器上安装mod_proxy

时间:2013-07-04 17:23:19

标签: apache tomcat apache2

我想使用apache web服务器从我的tomcat服务器反向代理Web服务。我修改了httpd.conf

LoadModule proxy_module modules/mod_proxy.so

<Directory />
    AllowOverride none
    Require all denied
</Directory>

ProxyPass         /ROOT  http://localhost:8080/ROOT
ProxyPassReverse  /ROOT  http://localhost:8080/ROOT

我的Tomcat服务器在端口8080上运行,现在当我运行localhost / ROOT时,我收到错误500内部服务器错误。

error_log中的最后一项是:

[Thu Jul 04 14:17:00.097359 2013] [proxy:warn] [pid 18980:tid 4476780544] [client 127.0.0.1:50525] AH01144: No protocol handler was valid for the URL /ROOT. If you are using a DSO version of mod_proxy, make sure the proxy submodules are included in the configuration using LoadModule.
access_log中的最后一项是:
 127.0.0.1 - - [04/Jul/2013:14:17:00 -0400] "GET /ROOT HTTP/1.1" 500 528

对我在这里做错了什么的想法?

3 个答案:

答案 0 :(得分:98)

所以花了一些时间,但我想出了办法。还有一个模块需要加载。这就是httpd.conf的样子

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

<Directory />
    AllowOverride none
    Require all denied
</Directory>

ProxyPass         /ROOT  http://localhost:8080/ROOT
ProxyPassReverse  /ROOT  http://localhost:8080/ROOT

这肯定有用。 :)

答案 1 :(得分:68)

由于容易忽视,请注意@ muka的评论:

sudo a2enmod proxy  
sudo a2enmod proxy_http  
sudo service apache2 restart

确保启用模块proxyproxy_http

答案 2 :(得分:16)

除了其他正确答案之外,如果您要代理https端点,则需要启用mod_ssl并将SSLProxyEngine on添加到您的虚拟主机