将域映射到Tomcat应用程序

时间:2014-12-01 12:56:51

标签: java linux apache .htaccess tomcat

我有一台安装了CentOS和zpanel的服务器。 Zpanel安装了" Apache Httpd"沿着许多其他模块。我一直在托管多个域名,没有任何问题。

我有两个问题:

  1. 删除端口8080并将所有呼叫定向到80.
  2. 每个tomcat应用程序的适当域,以及我在Apache Http上独立运行的现有站点。
  3. 我安装了apache tomcat 8并部署了多个应用程序,我可以访问我的应用程序,如

    http://example:8080/app1
    http://example:8080/app2
    http://example:8080/app3
    

    我想要的是我的tomcat应用程序映射到我的域,例如

    http://example:8080/app1 => http://www.app1.com
    http://example:8080/app2 => http://www.app2.com
    http://example:8080/app3 => http://www.app3.com
    

    我确实试过这个tutorial,这有点诡计,但不完全是我想要的。即在执行他在打开我的example.com时提到的步骤之后,它重定向到我的tomcat应用程序,例如:example.com/app1。 [它确实删除了8080并重定向到正确的应用程序]但是如果最终的应用程序被更改,即app1被更改为由tomcat托管的另一个项目,那么该项目被打开。

    编辑:

    我的虚拟主机文件是

     # DOMAIN: app1.com
     <virtualhost *:80>
     ServerName app1.com
     ServerAlias app1.com www.app1.com
    
     RewriteEngine On
     RewriteRule ^/$ app1/ [R=301]
    
         <Proxy *>
         Order allow,deny
         Allow from all
         </Proxy>
    
     ProxyRequests Off
     ProxyPreserveHost On
     ProxyPass /app1 http://localhost:8080/app1
     ProxyPassReverse /app1 http://localhost:8080/app1
    
    
     ErrorLog "/var/zpanel/logs/domains/zadmin/app1.com-error.log"
     CustomLog "/var/zpanel/logs/domains/zadmin/app1.com-access.log" combined
     CustomLog "/var/zpanel/logs/domains/zadmin/app1.com-bandwidth.log" common
    
     </virtualhost>
    

    更新1

    我也尝试了this,但没有用。我错过了什么吗?请指导。

2 个答案:

答案 0 :(得分:0)

您是否正确配置了http服务器?

例如在apache2.conf或httpd.conf

 #LoadModule directives
 LoadModule proxy_module /usr/lib/apache2/modules/mod_proxy.so
 LoadModule proxy_http_module /usr/lib/apache2/modules/mod_proxy_http.so

<VirtualHost *:80>
    ServerName www.example.com
    ProxyRequests Off
    ProxyPreserveHost On
    <Proxy *>
        Order deny,allow
        Allow from all
    </Proxy>
    ProxyPass / http://example.com:8080/app1
    ProxyPassReverse / http://example.com:8080/app1

    ProxyHTMLURLMap / /app1/

    <Location />
        Order allow,deny
        Allow from all
    </Location>
</VirtualHost>

答案 1 :(得分:0)

经过2天的艰苦搜索和大量测试后,我终于能够将我的域名映射到tomcat应用程序。非常感谢这两个指南mod_jk installationvhost/httpd/tomcat