Java 将域映射到Tomcat应用程序
我有一个安装了CentOS和zpanel的服务器。Zpanel安装了“ApacheHTTPD”以及许多其他模块。我一直在托管多个域名没有任何问题 我有两个问题: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
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