yanglgzh 发表于 2017-1-5 10:39:23

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]
查看完整版本: Apache+tomcat ajp模式转发域名