Apache 用例

Apache 用例

我使用 Apache 通过 SSL 证书在家庭服务器的 443 端口上为全世界的多个网站提供服务。昨晚我安装了一个 Linux 二进制文件,它只通过配置文件定义的端口为网站提供服务。我无法让 Apache 直接为网站提供服务。

因此该网站托管于http://127.0.0.1:8081/但我想将其隐藏在 443 上的 Apache 后面,以便我可以通过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 来做到这一点,但我似乎无法让它正常工作。

提前致谢!

答案1

您的重写规则 a) 有错误的目标并且 2) 是多余的。

RewriteRule 旨在[P]用作选择到 ProxyPass,而不是与其一起。[P] 规则的重写目标将是远程 Web 应用程序 URL,而不是本地 URL。例如,您可以使用以下内容:

RewriteRule ^/webapp/(.*) http://127.0.0.1:8081/$1 [P]

或者这:

ProxyPass /webapp/ http://127.0.0.1:8081/

或者这:

<Location /webapp/>
    ProxyPass http://127.0.0.1:8081/
</Location>

(注意:Apache 文档建议尽可能使用 ProxyPass。)

你的<Proxy *>阻止也是不必要的,因为它只适用于向前代理,其中客户端指定代理目的地(您已禁用)。

相关内容