首页 > Web开发 > 详细

Apache反向代理Tomcat(mod_proxy方式)

时间:2018-01-23 17:14:52      阅读:415      评论:0      收藏:0      [点我收藏+]
Apache反向代理Tomcat(mod_proxy方式)

环境使用两台服务器,apache服务器IP为192.168.8.18,tomcat服务器地址为192.168.8.16

Tomcat搭建(192.168.8.16):


安装JDK:

官方网站下载二进制包

# chmod +x jdk-6u45-linux-i586-rpm.bin# 赋予执行权限
# ./jdk-6u45-linux-i586-rpm.bin# 执行

默认安装在/usr/java目录下

# vim /etc/profile.d/java.sh 
export JAVA_HOME=/usr/java/jdk1.6.0_45# 声明环境变量
export PATH=$PATH:$JAVA_HOME/bin# 追加PATH变量
# java -version# 测试成功与否


安装Tomcat:

# wget http://mirrors.hust.edu.cn/apache/tomcat/tomcat-7/v7.0.82/bin/apache-tomcat-7.0.82.tar.gz
# tar xf apache-tomcat-7.0.82.tar.gz 
# cp apache-tomcat-7.0.82 /usr/local/ -rf
# cd /usr/local/
# ln -sv apache-tomcat-7.0.82 tomcat
# vim /etc/profile.d/tomcat.sh
export CATALINA_HOME=/usr/local/tomcat
export PATH=$PATH:$CATALINA_HOME/bin
# vim /etc/rc.d/rc.local 
/usr/local/tomcat/bin/catalina.sh start# 开机启动
# /usr/local/tomcat/bin/catalina.sh start# 启动tomcat服务

打开http://192.168.8.16:8080/测试下页面是否正常

Apache搭建(192.168.8.18):


准备工作:

# tar xf apr-1.6.3.tar.gz 
# tar xf apr-util-1.5.1.tar.gz
# tar xf httpd-2.4.29.tar.gz
# ./configure --prefix=/usr/local/apr
# make
# make install
# cd apr-util-1.5.1
# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
# make
# make install
# yum -y install pcre-devel


Apache安装:

要使用mod_proxy与Tomcat实例连接,需要apache已经装载mod_proxy、mod_proxy_http、mod_proxy_ajp和proxy_balancer_module(实现Tomcat集群时用到)等模块

# ./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd --enable-so --enable-rewirte --enable-ssl --enable-cgi --enable-cgid --enable-modules=most --enable-mods-shared=most --enable-mpms-shared=all --with-mpm=event --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-proxy --enable-proxy-http --enable-proxy-ajp --enable-proxy-balancer
# make
# make install
# vim /etc/rc.d/rc.local
# /usr/local/apache/bin/apachectl start
# vim /etc/profile.d/apache.sh
 export PATH=$PATH:/usr/local/apache/bin

配置apache通过mod_proxy模块与Tomcat连接:

        # vim httpd.conf

#DocumentRoot "/usr/local/apache/htdocs" # 注释掉,开启虚拟主机

Include /etc/httpd/extra/httpd-proxy.conf # 同时添加一行指向独立配置文件

# vim /etc/httpd/extra/httpd-proxy.conf # 编辑配置文件,添加如下内容

<VirtualHost *:8080>

ProxyVia Off

ProxyRequests Off

ProxyPass / http://192.168.8.16:8080/

ProxyPassReverse / http://192.168.8.16:8080/

<Proxy *>

 Require all granted

</Proxy>

<Location  / >

 Require all granted

</Location>

</VirtualHost>

关于如上apache指令的说明:


ProxyPreserveHost {On|Off}:如果启用此功能,代理会将用户请求报文中的Host:行发送给后端的服务器,而不再使用ProxyPass指定的服务器地址。如果想在反向代理中支持虚拟主机,则需要开启此项,否则就无需打开此功能。


ProxyVia  {On|Off|Full|Block}:用于控制在http首部是否使用Via:,主要用于在多级代理中控制代理请求的流向。默认为Off,即不启用此功能;On表示每个请求和响应报文均添加Via:;Full表示每个Via:行都会添加当前apache服务器的版本号信息;Block表示每个代理请求报文中的Via:都会被移除。


ProxyRequests {On|Off}:是否开启apache正向代理的功能;启用此项时为了代理http协议必须启用mod_proxy_http模块。同时,如果为apache设置了ProxyPass,则必须将ProxyRequests设置为Off。


ProxyPass  [path]  !|url  [key=value key=value ...]]:将后端服务器某URL与当前服务器的某虚拟路径关联起来作为提供服务的路径,path为当前服务器上的某虚拟路径,url为后端服务器上某URL路径。使用此指令时必须将ProxyRequests的值设置为Off。需要注意的是,如果path以“/”结尾,则对应的url也必须以“/”结尾,反之亦然。

另外,mod_proxy模块在httpd 

# apachectl start

访问http://192.168.8.18:8080/测试是否代理了192.168.8.16:8080


Apache反向代理Tomcat(mod_proxy方式)

原文:http://blog.51cto.com/lidongfeng/2064297

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!