Apache+tomcat ajp模式转发域名
先说下使用环境:有两个以上的tomcat或者多个应用服务器,然后多个域名指向一个外网ip,由外网ip再转发到域名分别对应的tomcat上。(无需加载第三方插件)
配置:
1、2.2以上的Apache+5.5以上的tomcat 安装不写。
2、打开Apache安装目录下的/conf/httpd.conf文件:
打开以下三个模块(将前面的#号去掉就行了)
1>LoadModule proxy_module modules/mod_proxy.so
2>LoadModule proxy_http_module modules/mod_proxy_http.so
3>LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
加载httpd-vhosts.conf配置文件,也是去掉#
4>Include conf/extra/httpd-vhosts.conf
3、打开Apache安装目录下的/conf/extra/httpd-vhosts.conf文件:
可以直接清空文件,然后加上配置:
NameVirtualHost *:80
<VirtualHost *:80>
ServerName a.xxx.com
ServerAlias xxx.com
DirectoryIndex index.html index.htm index.jsp login.jsp
ProxyPass /ajp://192.168.0.246:8009/ retry=3
ProxyPassReverse /ajp://192.168.0.246:8009/ retry=3
</VirtualHost>
<VirtualHost *:80>
ServerName b.xxx.com
ServerAlias xxx.com
DirectoryIndex index.html index.htm index.jsp login.jsp
ProxyPass /ajp://192.168.0.246:8009/ retry=3
ProxyPassReverse /ajp://192.168.0.246:8009/ retry=3
</VirtualHost>
<VirtualHost *:80>
ServerName c.ccc.com
ServerAlias ccc.com
DirectoryIndex index.html index.htm index.jsp login.jsp
ProxyPass /ajp://192.168.0.245:8009/ retry=3
ProxyPassReverse /ajp://192.168.0.245:8009/ retry=3
</VirtualHost>
上面是三个项目的配置,其中task.shhhes.com和pts.shhhes.com在一个服务器,一个tomcat里面。nc.shhhes.com在另外一台服务器里面。因此可以看到这样的配置是非常灵活的,不管项目在哪里,只要tomcat启动了,找到对应的ajp的端口号(如例子里的ajp://192.168.0.246:8009/),注意是ajp的端口号,不是tomcat的访问端口号8080。
4、配置tomcat的主机名和httpd-vhosts.conf一致
<Host name="a.xxx.com"appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
<Context docBase="D:\\apache-tomcat-6.0.41\webapps\xxxx" path=""reloadable="true" />
</Host>
其中 name里的a.xxx.com 和 ServerName a.xxx.com对应。docBase为项目地址
5、启动tomcat、启动Apache。ok。。。
注:如果域名没有解析、映射出去,那么到C:\WINDOWS\system32\drivers\etc 打开hosts文件,在最后添加
127.0.0.1 a.xxx.com
127.0.0.1 b.xxx.com
127.0.0.1 c.xxx.com
这样是模拟三个域名都访问Apache服务器的对应ip的80端口(12.34.56.78:80)然后由Apache转发到对应的tomcat服务器上去。
页:
[1]