我正在尝试将子目录代理到另一台服务器。我的 httpd.conf:
RewriteEngine On ProxyPreserveHost On RewriteRule .*subdir/ https://anotherserver/subdir/ [P]
问题是 Apache 总是记录这个:
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/
所以在搜索了互联网之后,我已经激活了这些模块:
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启用,可能会发生这种情况
mod_proxy_http
sudo a2enmod proxy_http
为了让我的基于 https 的负载均衡器正常工作,我必须启用以下功能:
sudo a2enmod ssl sudo a2enmod proxy sudo a2enmod proxy_balancer sudo a2enmod proxy_http