我有一台安装了 CentOS 和 zpanel 的服务器。 Zpanel 与许多其他模块一起安装了“Apache Httpd”。我一直在托管多个域,没有任何问题。
我有两个问题:
- 删除端口 8080 并将所有调用定向到 80。
- 每个 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/