我对Apache HTTP和一般的系统管理都很陌生,所以我有这个问题 我有一个域名(www.doamin.com),一个Apache收听端口80, 我也在同一个域上配置了一个配置为端口8080的Apache Tomcat。
有没有办法配置子域名(即tomcat.domain.com) 所以它会重定向到我的tomcat特定应用程序, 所以用户可以通过app1.domain.com和app2.domain.com访问应用程序(它将由Tomcat提供)?
我见过很多提到
mod_jk的
和
mod_proxy的
但所有帖子都假设了Apache的先验知识。 有人能跟我走吗?
非常感谢,-PK。
答案 0 :(得分:10)
mod_jk已过时。建议使用mod_proxy(mod_proxy_http或mod_proxy_ajp)将您的apache服务器的转发请求连接到tomcat。
也许这个SO question会给你一些提示。
您可以定义两个具有指定应用程序代理定义的虚拟主机(app1.domain.tld和app2.domain.tld)。 app1的示例:
<VirtualHost *:80>
ServerName app1.domain.tld
ProxyRequests Off
ProxyPreserveHost On
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass / http://localhost:8080/app1
ProxyPassReverse / http://localhost:8080/app1
</VirtualHost>
答案 1 :(得分:5)
而Magomi几乎是对的,
提出一种确切的方法。
将您的子域名添加到DNS服务器
将* mod_proxy *集成到 httpf.conf :
LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_ajp_module modules/mod_proxy_ajp.so LoadModule proxy_balancer_module modules/mod_proxy_balancer.so LoadModule proxy_connect_module modules/mod_proxy_connect.so LoadModule proxy_ftp_module modules/mod_proxy_ftp.so LoadModule proxy_http_module modules/mod_proxy_http.so LoadModule proxy_scgi_module modules/mod_proxy_scgi.so
定义两个虚拟主机,如下所示
NameVirtualHost *:80
<VirtualHost *:80> ServerName application.domain.com ProxyRequests Off ProxyPreserveHost On <Proxy *> Order deny,allow Allow from all </Proxy> ProxyPass / http://www.domain.com:8080/application/ ProxyPassReverse / http://www.domain.com:8080/application/ </VirtualHost> <VirtualHost *:80> DocumentRoot C:\<pathToApache>\www ServerName www.domain.com </VirtualHost>
这会将您的网站(www.domain.com)定向到您的Apache HTTP服务器,并将所有对 Application 的调用重定向到Tomcat。
希望这有助于,
<强> -PK 强>