apache+tomcat多域名

概要

反向代理: 客户端能访问外部的web,但是不能访问目标web,目标web所在的网络内一台机器充当目标web的代理,客户端直接访问代理就像访问目标web一样(此代理对客户端透明,即客户端不用做如何设置,并不知道实际访问的只是代理而已,以为就是访问的目标)
适用于:

①idc的某台目标机器只对内开放web,外部的客户端要访问,就让另一台机器做proxy,外部直接访问proxy即相当于访问目标
②idc的目标机器的某个特殊的web服务跑在非正常端口如9000,而防火墙上只对外开放了80,此时可在80上做proxy映射到9000,外部访问80即相当于9000

 如例子,实现了访问 baidu.51roadshow.com 的时候,通过http代理直接访问了百度。

<VirtualHost *:80>         ServerName baidu.51roadshow.com         ServerAlias baidu .51roadshow.com         DirectoryIndex index.jsp         ProxyPass /http://127.0.0.1:8009/         ProxyPassReverse /http://127.0.0.1:8009/</VirtualHost>

 

  1. apache配置简述

 

apache2.conf核心配置文件,一般不需要修改 conf.d目录,里面包含了一些字符集设置,文档等设置!   dav_svn.authz和dav_svn.passwd是前面做SVN时,相关权限、密码文件。   envvars定义了运行时的用户身份——www-data。   httpd.conf是Apache留给我们自己折腾的配置文件,默认为空。apache2.conf会加载这个文件。 ports.conf端口默认置。apache2.conf会加载这个文件。 magic为mod_mime_magic模块服务。 mods-enabled和mods-availablemods-enabled会被apache2.conf加载,里面包含*.load和*.conf文件。.load文件中是加载相应的模块(位于/usr/lib/apache2/modules/中),而.conf中是对应的基本配置。但这些文件其实都是链接到mods-available中相应的文件上。当我们通过a2enmod操作时,实际上正是操作了这些软链接。 sites-available和sites-enabled 与 mods-enabled和mods-available的关系类似,只是其中包含的是站点内容。 所以,直接把vitualhost配在HTTPD.CONF下比较方便。正式环境可以配在sites-available便于管理   链接方式 ln -s /etc/apache2/sites-available/user.itcookie.com /etc/apache2/sites-enabled/user.itcookie.com

  

  1. 启用apache代理模块,只需要启动AJP,因为只用到了AJP

#启用模块 sudo a2enmod <model> #禁用模块 sudo a2dismod <model> #代理核心模块 sudo a2enmod proxy #代理AJP模块 sudo a2enmod proxy_ajp #代理负载均衡模块 sudo a2enmod proxy_balancer #代理HTTP模块 sudo a2enmod proxy_http #代理FTP模块 sudo a2enmod proxy_ftp

  

 3. apache配置多站点,httpd.conf,test1,和test2被代理转发到了tomcat。

<VirtualHost *:80>         DocumentRoot "/var/www/weixin"         ServerName weixin.51roadshow.com         ServerAlias weixin.51roadshow.com </VirtualHost> <VirtualHost *:80>         ServerName test1.51roadshow.com         ServerAlias test1.51roadshow.com         DirectoryIndex index.jsp         ProxyPass / ajp://127.0.0.1:8009/         ProxyPassReverse / ajp://127.0.0.1:8009/ </VirtualHost> <VirtualHost *:80>         ServerName test2.51roadshow.com         ServerAlias test2.51roadshow.com         DirectoryIndex index.jsp         ProxyPass / ajp://127.0.0.1:8009/         ProxyPassReverse / ajp://127.0.0.1:8009/ </VirtualHost>

 

  1. tomcat配置域名绑定的project,  server.xml

把原有的给删了,重新加入两个HOST

<Host name="test1.51roadshow.com" appBase="/home/webapps/test1" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"> <Alias>test1.51roadshow.com</Alias> <Context path="" docBase="/home/webapps/test1/Portal" reloadable="true" caseSensitive="false"></Context> </Host> <Host name="test2.51roadshow.com" appBase="/home/webapps/test2" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"> <Alias>test2.51roadshow.com</Alias> <Context path="" docBase="/home/webapps/test2/PortalWeb" reloadable="true" caseSensitive="false"></Context> </Host>

 

 

代码交流 2021