windows 下mod_proxy_ajp集成Apache2.4与Tomcat7反向代理与均衡负载
来源:互联网 发布:http php 上传文件 编辑:程序博客网 时间:2024/05/17 23:03
一.准备Apache
1.下载Apache
本次使用的是ApacheHaus 2.4.10-x64版本,因为官方暂未提供2.4.10 for windows下载。
下载地址:http://httpd.apache.org/docs/2.4/platform/windows.html
2.装载Apache服务
2.1管理员运行CMD后执行“Apache路径”\bin\httpd.exe -k install命令,执行后在服务中或ApacheMonitor中启动Apache,启动后访问 http://localhost,若显示Apache页面则安装成功。
2.2如果安装时遇到下列异常
error on line 39
修改httpd.conf
Define SRVROOT "/Apache24"
ServerRoot "${SRVROOT}"
修改为
Define SRVROOT "D:/Apache24" --此处为Apache绝对路径
ServerRoot "D:/Apache24" --此处为Apache绝对路径
若安装有问题可使用“Apache路径”\bin\httpd.exe -k uninstall命令卸载服务。
二.准备Tomcat
本次使用的是7.0.57版本,此项很常用,不再多做阐述。
三.配置Apache下httpd.conf
因为Apache2.1版本后已经支持mod_proxy_ajp,无需下载其他文件。
1.修改httpd.conf
打开Apache的conf/httpd.conf文件,将以下项目注释放开
#LoadModule buffer_module modules/mod_buffer.so --选配
以上模块提供了缓冲的输入和输出栈的功能
LoadModule cache_module modules/mod_cache.so --选配
LoadModule cache_disk_module modules/mod_cache_disk.so --选配
以上两个模块为mod_cache提供基于磁盘的缓存管理,推荐加载
LoadModule lbmethod_byrequests_module modules/mod_lbmethod_byrequests.so
LoadModule slotmem_shm_module modules/mod_slotmem_shm.so
以下为mod_proxy权限
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule proxy_http_module modules/mod_proxy_http.so
2.修改下列选项
<IfModule dir_module>
DirectoryIndex index.html
</IfModule>
修改为
<IfModule dir_module>
DirectoryIndex index.html index.jsp --如果index页面为jsp的话
</IfModule>
DocumentRoot "${SRVROOT}/htdocs"
<Directory "${SRVROOT}/htdocs">
修改为
DocumentRoot "D:\Tomcat7\apache-tomcat-7.0.57\webapps\ROOT"
<Directory "D:\Tomcat7\apache-tomcat-7.0.57\webapps\ROOT">
3.在文件最后增加下列选项
<proxy balancer://cluster/>
BalancerMember ajp://127.0.0.1:8010 loadfactor=1 route=jvm1
BalancerMember ajp://127.0.0.1:9010 loadfactor=1 route=jvm2
</proxy>
注意:此处有几个Tomcat做均衡负载就添加几个BalancerMember,而此处的8010端口是指Tomcat中server.xml中
<Connector port="8010" protocol="AJP/1.3" redirectPort="8443" />中的port
多个Tomcat记得首先修改此端口,以免端口冲突。
三.配置Apache下httpd-vhosts.conf
1.修改下列选项
<VirtualHost _default_:80>
DocumentRoot "${SRVROOT}/htdocs"
#ServerName www.example.com:80
</VirtualHost>
改为
#<VirtualHost _default_:80>
#DocumentRoot "${SRVROOT}/htdocs"
#ServerName www.example.com:80
#</VirtualHost>
此选项是将默认的配置全部注释掉
2.添加下列选项
<VirtualHost *:80>
ServerAdmin xxxxxx@xx.com --可以不填写
ServerName 127.0.0.1 --注意修改
ServerAlias localhost --注意修改
ProxyPass / balancer://cluster/ stickysession=jsessionid nofailover=On
ProxyPassReverse / balancer://cluster/
ErrorLog "logs/proxyTest-error.log"
CustomLog "logs/lbtest-access.log" common
</VirtualHost>
四.配置Tomcat的server.xml
1.修改下列选项
<Engine name="Catalina" defaultHost="localhost">
为
<Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm1">
此处jvm1与Apache的httpd.conf中BalancerMember配置中的route值相同
现在全部配置已经结束,重启Apache与Tomcat后,访问http://localhost如果能访问到Tomcat欢迎界面则配置成功。
五.运行后发现异常
(OS 64)指定的网络名不再可用: AH00341: winnt_accept: Asynchronous AcceptEx failed.
AcceptEx的错误原因:一些流行的Windows产品,比如防病毒软件或虚拟专用网络软件,会干扰AcceptEx()的正确操作。
Apache2.4版本后对此做了解决措施:修改httpd.conf如下
AcceptFilter http none
AcceptFilter https none
EnableSendfile Off --使用操作系统内核的sendfile支持来将文件发送到客户端
EnableMMAP off --递送中使用内存映射来读取文件
然后调整windows配置
1.网上邻居-;本地连接-;属性-;internet协议(TCP/IP)-;属性-;高级-;wins标签;去掉启用LMhosts查询前的勾.
2.控制面版-;windows防火墙-;高级标签-;本地连接设置-;服务的标签里勾选安全Web服务器(HTTPS)。
- windows 下mod_proxy_ajp集成Apache2.4与Tomcat7反向代理与均衡负载
- 负载均衡与反向代理
- Apache2.4+tomcat7.0 配置反向代理和负载均衡及session集群
- 【原创】Nginx在Windows环境下的反向代理与负载均衡的配置与验证
- 正向代理与反向代理、负载均衡
- windows与linux下apache+tomcat负载均衡部署。反向代理黏贴保证sessionID不变。
- Windows下Nginx+tomcat7+redis负载均衡与session共享
- nginx负载均衡与反向代理
- 【Nginx】Http负载均衡与反向代理
- Nginx反向代理与负载均衡
- nginx反向代理与负载均衡
- Nginx的反向代理与负载均衡
- Nginx 的反向代理与负载均衡
- nginx反向代理与负载均衡
- Nginx------什么是反向代理与负载均衡
- Nginx反向代理与负载均衡
- Nginx负载均衡与反向代理
- nginx反向代理与负载均衡
- Windows+Linux双系统时删除Linux系统
- poj1456
- 万恶的流氓首页~~我要干掉你
- Android Studio设置或修改SDK路径
- 微信打开第三方应用
- windows 下mod_proxy_ajp集成Apache2.4与Tomcat7反向代理与均衡负载
- mysql的binlog太大太多占用大量磁盘的解决
- 纯vc sdk实现http post 方式上传数据到web服务器
- 每日一算法9--计算传入值是否星期六
- 仿微信password控件,实现密码可见于不可见功能
- title遇到空格显示不全
- Java堆栈队列
- 二维数组的列排序 考虑问题的全局性 声明数组必须要分配内存并清零
- poj1700过河 题解