Java 将域映射到Tomcat应用程序

Java 将域映射到Tomcat应用程序,java,linux,apache,.htaccess,tomcat,Java,Linux,Apache,.htaccess,Tomcat,我有一个安装了CentOS和zpanel的服务器。Zpanel安装了“ApacheHTTPD”以及许多其他模块。我一直在托管多个域名没有任何问题 我有两个问题: 移除端口8080并将所有呼叫转接到端口80 每个tomcat应用程序的适当域,以及我在Apache Http上独立运行的现有站点 我安装了ApacheTomcat8并部署了多个应用程序,我可以访问我的应用程序,如 http://example:8080/app1 http://example:8080/app2 http://examp

我有一个安装了CentOS和zpanel的服务器。Zpanel安装了“ApacheHTTPD”以及许多其他模块。我一直在托管多个域名没有任何问题

我有两个问题:

  • 移除端口8080并将所有呼叫转接到端口80
  • 每个tomcat应用程序的适当域,以及我在Apache Http上独立运行的现有站点
  • 我安装了ApacheTomcat8并部署了多个应用程序,我可以访问我的应用程序,如

    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
    
    我确实试过这个方法,虽然有些技巧,但并不完全是我想要的。i、 e.在执行了他在我打开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>
    
    #域:app1.com
    ServerName app1.com
    ServerAlias app1.com www.app1.com
    重新启动发动机
    重写规则^/$app1/[R=301]
    命令允许,拒绝
    通融
    代理请求关闭
    代理主机
    ProxyPass/app1http://localhost:8080/app1
    ProxyPassReverse/app1http://localhost:8080/app1
    ErrorLog“/var/zpanel/logs/domains/zadmin/app1.com error.log”
    CustomLog“/var/zpanel/logs/domains/zadmin/app1.com access.log”组合
    CustomLog“/var/zpanel/logs/domains/zadmin/app1.com bandwidth.log”通用
    
    更新1
    我也试过了,但没有用。我错过什么了吗?请指导。

    您是否正确配置了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>
    
    #加载模块指令
    LoadModule proxy_module/usr/lib/apache2/modules/mod_proxy.so
    LoadModule proxy_http_module/usr/lib/apache2/modules/mod_proxy_http.so
    服务器名www.example.com
    代理请求关闭
    代理主机
    命令拒绝,允许
    通融
    ProxyPass/http://example.com:8080/app1
    ProxyPassReverse/http://example.com:8080/app1
    ProxyHTMLURLMap//app1/
    命令允许,拒绝
    通融
    
    经过两天的艰苦搜索和大量测试,我终于能够将我的域映射到tomcat应用程序。非常感谢这两个指南,我刚刚更新了我的问题。请查收。另外,通过这些配置,我仍然可以看到:(使用您的配置,您尝试通过此url>访问您的应用程序,查看我的配置,有一些重要的差异将您的ServerName指令更改为ServerName www.app1.com并删除您的ServerAlias我遇到了相同的问题-您的virtualhost文件是否为您提供了帮助?因为我尝试了它,但它仍然无法正常工作。)ld