Apache 代理:没有有效的协议处理程序 [英] Apache Proxy: No protocol handler was valid
问题描述
我正在尝试将一个子目录代理到另一台服务器.我的 httpd.conf:
I am trying to proxy a subdirectory to another server. My httpd.conf:
RewriteEngine On
ProxyPreserveHost On
RewriteRule .*subdir/ https://anotherserver/subdir/ [P]
问题是 Apache 总是记录这个:
The problem is that Apache is always logging this:
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/
所以在网上搜索后,我激活了这些模块:
So after searching the internet, I have activated these modules:
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
(我知道我不需要所有这些,但我只是激活它们以确保我没有遗漏一个)
(I know that I don't need all of them but I just activated them to be sure I am not missing one)
但是这个错误仍然出现并且客户端得到一个 HTTP 500.
But this error still appears and clients get a HTTP 500.
我该如何解决这个问题?
How can I fix this?
推荐答案
如果您没有启用 mod_proxy_http
可能会发生这种情况
This can happen if you don't have mod_proxy_http
enabled
sudo a2enmod proxy_http
为了让基于 https 的负载均衡器正常工作,我必须启用以下功能:
For me to get my https based load balancer working, i had to enable the following:
sudo a2enmod ssl
sudo a2enmod proxy
sudo a2enmod proxy_balancer
sudo a2enmod proxy_http
这篇关于Apache 代理:没有有效的协议处理程序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!