您的位置:首页 > 理论基础 > 计算机网络

httpd反向代理

2015-09-03 13:55 537 查看
注释DocumentRoot

#DocumentRoot "/var/www/html"


使用mod_proxy模块代理

确保httpd安装了代理模块并启用的代理模块

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so


配置虚拟主机来代理后端服务器

<VirtualHost *:80>
# 是否在响应头中说明通过哪个主机代理请求额{On|Off}
ProxyVia Off
# 正向代理,如果要做反响代理,此功能必须禁用,正向和反向不能同时工作
ProxyRequests Off
ProxyPreserveHost Off
<Proxy *>
Require all granted
</Proxy>
# 如果是tomcat可以使用ajp协议
ProxyPass / http://192.168.10.11:8080/ # 为了反响代理的响应或者重定向绕过代理
ProxyPassReverse / http://192.168.10.11:8080/ <Location />
Satisfy Any
Require all granted
</Location>
</VirtualHost>

一般建议使用AJP协议代理tomcat。

使用mod_jk来代理tomcat

需要为httpd下载安装tomcat-connector

# tar -xvf tomcat-connectors-1.2.41-src.tar.gz
# cd tomcat-connectors-1.2.41-src/native/
# which apxs
/usr/local/httpd/bin/apxs
# ./configure --with-apxs=/usr/local/httpd/bin/apxs
# make
# make install


配置httpd使用jk模块来代理tomcat

# vim + /etc/httpd/conf.d/httpd-jk.conf
# 加载mod_jk模块
LoadModule jk_module modules/mod_jk.so
# 后端服务器定义文件
JkWorkersFile /etc/httpd/workers.properties
# 日志
JkLogFile logs/mod_jk.log
JkLogLevel debug
# /*转发到TomcatA,为/etc/httpd/workers.properties文件中定义的tomcatA
JkMount /* TomcatA
JkMount /status/ stat1


配置后端服务器

/etc/httpd/workers.properties

worker.list=TomcatA,stat1
worker.TomcatA.port=8009
worker.TomcatA.host=192.168.10.11
worker.TomcatA.type=ajp13
worker.TomcatA.lbfactor=1
worker.stat1.type=status


使用mod_proxy模块来负载均衡至后端tomcat

在httpd.conf全局中配置如下

ProxyRequests Off
# 定义一组后端tomcat
<proxy balancer://tomcatcluser>
BalancerMember ajp://192.168.0.222:8009 loadfactor=10 route=tomcat1
BalancerMember ajp://192.168.0.223:8009 loadfactor=10 route=tomcat2
</proxy>
# 定义一个虚拟主机代理至后端tomcat
<VirtualHost *:81>
ProxyPass / balancer://tomcatcluser/
ProxyPassReverse / balancer://tomcatcluser/
ProxyVia On
</VirtualHost>


并且可以实现后端服务器健康状态检查。

使用mod_proxy模块来负载均衡,后端tomcat集群session共享

两个tomcat均配置唯一的jvmRoute
<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1">
两个tomcat均启用cluster
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
项目的web.xml中配置
<distributable/>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: