我配置了一个包含多个域的服务器,其中多个域与 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/appOne
和https://mydomain/appTwo
。
我该如何配置mod-jk
插件,tomcat
以便只apache
允许我访问其中一些 Web 应用程序https://mydomain/
?我可以使用mod-jk
ajp13-worker 作为根路径,为每个域定义一个 Web 应用程序,并允许我继续像以前一样访问 Web 应用程序appOne.war
。appTwo.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 上有效...