Apache Proxy:没有协议处理程序是有效的

我想代理一个子目录到另一台服务器。 我的httpd.conf:

RewriteEngine On ProxyPreserveHost On RewriteRule .*subdir/ https://anotherserver/subdir/ [P] 

问题是,Apache总是logging这个:

 AH01144: No protocol handler was valid for the URL /subdir/. If you are using a DSO version of mod_proxy, make sure the proxy submodules are included in the configuration using LoadModule., referer: http://localhost/ 

所以在search互联网之后,我激活了这些模块:

 LoadModule headers_module modules/mod_headers.so LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_ajp_module modules/mod_proxy_ajp.so LoadModule proxy_connect_module modules/mod_proxy_connect.so LoadModule proxy_express_module modules/mod_proxy_express.so LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so LoadModule proxy_ftp_module modules/mod_proxy_ftp.so LoadModule proxy_html_module modules/mod_proxy_html.so LoadModule proxy_http_module modules/mod_proxy_http.so LoadModule proxy_scgi_module modules/mod_proxy_scgi.so LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so LoadModule rewrite_module modules/mod_rewrite.so 

(我知道,我不需要所有的人,但我只是激活他们,以确保我不会错过一个)

但是这个错误仍然出现,客户端得到一个HTTP 500。

我怎样才能解决这个问题?

如果您没有启用mod_proxy_http可能会发生这种情况

sudo a2enmod proxy_http

为了让我的基于https的负载均衡工作,我必须启用以下内容:

 sudo a2enmod ssl sudo a2enmod proxy sudo a2enmod proxy_balancer sudo a2enmod proxy_http 

我没有足够的业力评论…对于我的Apache2.4 + php5-fpm安装开始工作,我需要激活以下Apache模块:

 sudo a2enmod proxy sudo a2enmod proxy_fcgi 

不需要proxy_http ,这就是所有.php文件直接发送到php5-fpm:

 <FilesMatch \.php$> SetHandler "proxy:unix:/var/run/php5-fpm.sock|fcgi://localhost" </FilesMatch> 

为了进一步说明,以上几个答案中提到的a2enmod是Debian / Ubuntu。 红帽不使用这个来启用Apache模块,而是使用httpd.conf中的LoadModule语句。

更多这里: https : //serverfault.com/questions/56394/how-do-i-enable-apache-modules-from-the-command-line-in-redhat

解决scheme/正确答案在OP的评论中:

我认为你需要mod_ssl和SSLProxyEngine与ProxyPass – Deadooshka 14年5月29日在11:35

@Deadooshka是的,这是工作。 如果你张贴这个答案,我可以接受它 – das_j 14年5月29日在12:04

在我的情况下,我需要proxy_ajp模块。

 a2enmod proxy proxy_http proxy_ajp