繁体   English   中英

如何配置Apache以将多个tomcat应用作为子域提供

[英]How to configure apache to serve multiple tomcat apps as subdomains

我正在尝试完成以下行为:

user1.mydomain.com -> redirected to /var/lib/tomcat6/webapps/user1/
user2.mydomain.com -> redirected to /var/lib/tomcat6/webapps/user2/

当我将新应用程序添加到Tomcat的webapps文件夹时,我希望它们可以使用相同的子域模式自动使用。

现在,通过以下配置,当访问user2.mydomain.com:8010我得到了“有效!” 来自Apache的页面。 但是访问user2.mydomain.com:8010/user2可以正常工作。

显然我在做错事,但我无法弄清楚是什么。 任何帮助/建议将不胜感激。

我在带有mod_jk连接器的tomcat前面使用apache进行URL重写。

子域配置:

* IN CNAME mydomain.com.
www.* IN CNAME mydomain.com.

/ var / www中的.htaccess:

RewriteEngine On
Options +FollowSymlinks
RewriteBase /

RewriteCond %{HTTP_HOST} ^(www.)?user1.mydomain.com
RewriteCond %{REQUEST_URI} !user1/
RewriteRule ^(.*)$ user1/$1 [L]

/ etc / apache2 / sites-enabled中的000默认配置:

<VirtualHost *:8010>
    ServerAdmin webmaster@localhost

    DocumentRoot /var/www
    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    <Directory /var/www/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        allow from all
    </Directory>

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
        AllowOverride None
        Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
        Order allow,deny
        Allow from all
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog ${APACHE_LOG_DIR}/access.log combined

    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>

JkMount /* worker1
</VirtualHost>

worker.properties:

#Define 1 real worker using ajp13
worker.list=worker1
#Set properties for worker (ajp13)
worker.worker1.type=ajp13
worker.worker1.host=localhost
worker.worker1.port=8009

一种选择是在tomcat本身中进行虚拟主机映射,并将您的应用程序作为“ ROOT”应用程序放置在不同的主机下。

例如,在server.xml中定义以下内容:

<Host name="user1.mydomain.com" appBase="user1"
    unpackWARs="true" autoDeploy="true" 
    xmlValidation="false" xmlNamespaceAware="false" />

<Host name="user2.mydomain.com" appBase="user2"
    unpackWARs="true" autoDeploy="true" 
    xmlValidation="false" xmlNamespaceAware="false" />

然后创建2个文件夹:

.../tomcat/user1/
.../tomcat/user2/

并将应用程序部署为“ ROOT”。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM