我有一台安装了CentOS和zpanel的服务器。 Zpanel安装了" Apache Httpd"沿着许多其他模块。我一直在托管多个域名,没有任何问题。
我有两个问题:
我安装了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>
我也尝试了this,但没有用。我错过了什么吗?请指导。
答案 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 installation和vhost/httpd/tomcat