使用 tomcat webapp 作为 apache/mod-jk 虚拟主机的根路径

使用 tomcat webapp 作为 apache/mod-jk 虚拟主机的根路径

我配置了一个包含多个域的服务器,其中多个域与 ajp13-worker 关联。配置文件如下所示:

<VirtualHost *:80>
        ServerAdmin my@email
        ServerName mydomain
        ServerAlias www.domain
        DocumentRoot /home/kleber/www/loja
        JkMount /app* ajp13_worker
        ...
</VirtualHost>

当我将一些webapps比如appOne.war和部署appTwo.war到我的tomcat webapps目录时,我可以使用类似这样的命令来访问它们:https://mydomain/appOnehttps://mydomain/appTwo

我该如何配置mod-jk插件,tomcat以便只apache允许我访问其中一些 Web 应用程序https://mydomain/?我可以使用mod-jkajp13-worker 作为根路径,为每个域定义一个 Web 应用程序,并允许我继续像以前一样访问 Web 应用程序appOne.warappTwo.war

更新

<VirtualHost *:80>
        ServerAdmin ...
        ServerName ...
        ServerAlias ...
        DocumentRoot /home/kleber/www/loja
        JkMount /app* ajp13_worker

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

        RewriteEngine on
        RewriteCond %{SERVER_NAME} =... [OR]
        RewriteCond %{SERVER_NAME} =...
        RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>

答案1

您需要内部重写:

<VirtualHost *:80>
    ServerAdmin my@email
    ServerName loja-de-software.net.br
    ServerAlias www.loja-de-software.net.br
    DocumentRoot /home/kleber/www/loja
    JkMount /app* ajp13_worker

    RewriteEngine  on

    RewriteCond %{HTTP_HOST} loja-de-software.net.br
    RewriteRule /(.*) /appOne/$1 [PT,END]

</VirtualHost>

答案2

如果要使其中一个 Web 应用程序在根上下文中可用,可以将 war 文件重命名为 ROOT.war 并重新部署。这至少在 tomcat8 上有效...

相关内容