Apache ProxyPass 到 Tomcat - 如何从 URL 中删除上下文路径?

Apache ProxyPass 到 Tomcat - 如何从 URL 中删除上下文路径?

我有 Apache 配置:

<IfModule mod_ssl.c>
<VirtualHost *:443>

    ServerName project.example.com
    ServerAlias ci
    ProxyRequests Off

    <Proxy *>
        Order deny,allow
        Allow from all
    </Proxy>

    ProxyPreserveHost on
    ProxyPass / http://localhost:1111/project

    SSLCertificateFile /etc/letsencrypt/live/sub.example.com/cert.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/sub.example.com/privkey.pem
    Include /etc/letsencrypt/options-ssl-apache.conf
    SSLCertificateChainFile /etc/letsencrypt/live/sub.example.com/chain.pem

</VirtualHost>
</IfModule>

当我输入 时project.example.com,我进入https://project.example.com/project/users/sign_in浏览器。如何从 URL 中删除上下文路径?我想project从 URL 中删除并获取https://project.example.com/users/sign_in

答案1

我认为您漏掉了结尾的斜线:

ProxyPass / http://localhost:1111/project/

定义相应的ProxyPassReverse也是一个好主意:

ProxyPassReverse / http://localhost:1111/project/

答案2

因此,首先要从应用程序中删除上下文根。除非您将上下文定义为 /(空白),否则您无法在没有上下文根的情况下访问应用程序。

解决方案应该能让您了解如何更改上下文根。完成这些步骤后,您应该能够访问您的应用程序http://本地主机:1111/

然后进入 httpd 配置删除项目名称:

ProxyPass / http://localhost:1111/

相关内容