您的位置:首页 > 运维架构 > 反向代理

Apache反向代理配置

2016-10-22 13:05 369 查看
Apache反向代理配置,可以实现同台或者多台服务器间的多http服务的统一代理。

1、系统环境

CentOS6.x

需要安装httpd服务,检查是否安装

service httpd status


安装方法,yum直接安装

yum install httpd -y


2、准备三台服务器的多个tomcat的http服务

spark1 : 8080 8088

spark2 : 8080

spark3 : 8080

apache可以代理本机或者多台服务器间同一端口或者不同端口的http服务

3、修改配置文件

vim /etc/httpd/conf/httpd.conf

<VirtualHost *:80>
ServerAdmin ganymede.wuke@foxmail.com
ServerName www.ganymede.com
ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass /test1 http://spark1:8080/test1 ProxyPassReverse /test1 http://spark1:8080/test1 ProxyPass /test1_2 http://spark1:8088/test1_2 ProxyPassReverse /test1_2 http://spark1:8088/test1_2 ProxyPass /test2 http://spark2:8080/test2 ProxyPassReverse /test2 http://spark2:8080/test2 ProxyPass /test3 http://spark3:8080/test3 ProxyPassReverse /test3 http://spark3:8080/test3 </VirtualHost>


配置截图如下:



重启apache服务,需要注意的是ProxyPass 与 ProxyPassReverse 需配置在一样的路径,且代理的路径与服务名一致。

service httpd restart


4、关于ProxyPass 与 ProxyPassReverse 
ProxyPass 就是把所有来自客户端对http://spark1:8080/test1的请求转发给/test1上进行处理,

ProxyPassReverse 的配置总是和ProxyPass 一致,如果响应中有302重定向,ProxyPassReverse就派上用场。举例说明,假设处理的结果是实现redirect到login.jsp,如果没有配置反向代理,址只是代理服务器能访问到的,可想而知,客户端肯定是打不开的。反之如果配置了反向代理,则会在转交HTTP重定向应答到客户端之前调整它为http://spark1:8080/test1/login.jsp,即是在原请求之后追加上了redirect的路径。

客户端到服务器称之为正向代理,那服务器到客户端就叫反向代理。

5、测试代理服务
http://spark1/test1 代理 http://spark1:8080/test1/ 
http://spark1/test1_2 代理 http://spark1:8088/test1_2
http://spark1/test2 代理 http://spark2:8080/test2
http://spark1/test3 代理 http://spark3:8080/test3

说明:

apache中的mod_proxy模块主要作用就是进行url的转发,即具有代理的功能。应用此功能,可以很方便的实现同tomcat等应用服务器的整合,甚者可以很方便的实现web集群的功能。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: