java - 将域映射到 Tomcat 应用程序

标签 java linux apache .htaccess tomcat

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

我有两个问题:

  1. 删除端口 8080 并将所有调用定向到 80。
  2. 每个 tomcat 应用程序的适当域,以及我在 Apache Http 上独立运行的现有站点。

我安装了 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也有,但没用。我错过了什么吗?请指导。

最佳答案

你的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>

关于java - 将域映射到 Tomcat 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27228907/

相关文章:

json - 如何根据http-header内容类型进行mod_rewrite

java - 用于加密语音数据的 SSL

linux - 从外部源将文本 block 粘贴到 vi 编辑器中的最快方法

php扩展pecl安装后缀错误

c - 非常简单的 DNS 服务器

php - 检查最后修改的目录

reactjs - Next.JS动态路由静态导出项目在新标签页打开或重新加载页面导致404

java - 调用 getFriends 时抛出异常

java - Jackson 中的序列化数组类型和数组

java - 为插件开发设置 Intellij IDEA - 找不到符号 PathInfo