我使用 Apache 在我的家庭服务器上使用 SSL 证书在端口 443 上为全世界提供多个站点。昨晚我安装了一个 linux 二进制文件,它仅在通过其配置文件定义的端口上为站点提供服务。我不可能让 Apache 直接为该站点提供服务。
所以这个站点托管在http://127.0.0.1:8081/但我想将它隐藏在 Apache 后面 443 以便我可以通过https://myserver.duckdns.org/webapp/访问它
到目前为止,我已经在我的站点配置文件中尝试过这个,但它没有奏效:
ProxyRequests off
<Proxy *>
allow from all
</Proxy>
RewriteEngine On
RewriteRule ^/(.*) /webapp/$1 [P]
<Location /webapp/>
ProxyPass http://127.0.0.1:8081/
ProxyPassReverse http://127.0.0.1:8081/
</Location>
知道我该怎么做吗?
我以为我可以使用 ProxyPass 和 RewriteRules 来做到这一点,但我似乎无法让它正常工作。
提前非常感谢!
你的重写规则a)有错误的目标,2)是多余的。
RewriteRule with
[P]
旨在用作ProxyPass的替代品,而不是与它一起使用。[P] 规则的重写目标是远程 webapp URL,而不是本地 URL。例如,你可以使用这个:或者这个:
或者这个:
(注意:Apache 文档建议尽可能使用 ProxyPass。)
您的
<Proxy *>
阻止也是不必要的,因为它仅适用于转发代理,其中客户端指定代理目标(您已禁用)。