在apache http服务器上安装mod_proxy

use*_*101 58 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
Run Code Online (Sandbox Code Playgroud)

我的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:没有协议处理程序对URL/ROOT有效.如果您使用的是DSO版本的mod_proxy,请确保使用LoadModule在配置中包含代理子模块.
最后一个条目access_log是:
 127.0.0.1  -   -  [04/Jul/2013:14:17:00 -0400]"GET/ROOT HTTP/1.1"500 528

我在这里做错了什么?

use*_*101 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
Run Code Online (Sandbox Code Playgroud)

这肯定有用.:)

  • `sudo a2enmod proxy``sud a2enmod proxy_http``sudo service apache2 restart (50认同)
  • 这个proxy_http是必需的! (10认同)

Hor*_*ren 68

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

sudo a2enmod proxy  
sudo a2enmod proxy_http  
sudo service apache2 restart
Run Code Online (Sandbox Code Playgroud)

确保启用两个模块proxy和proxy_http!

  • ^这让我免于20小时的痛苦.谢谢! (5认同)

Gre*_*reg 16

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