在网上看了搜了下,好像很少专门介绍mod_proxy模块的功能的文章,所以今天我来现学现买也说点,先说下apache
2.2之前的版本吧,相对网上相关资料也多点,下面简单几句想必我再多说都是废话拉
下面以在apachemod_proxy下做的反向代理负载均衡为配置实例:在站点www.test.com
,我们按提供的内容进行分类,不同的服务器用于提供不同的内容服务,将对http://www.test.com/news
的访问转到IP地址为192.168.1.1的内部服务器上处理,对http://www.test.com/it
的访问转到服务器192.168.1.2上,对http://www.test.com/life
的访问转到服务器192.168.1.3上,对http://www.test.com/love
的访问转到合作站点http://www.love.com
上,从而减轻本apache服务器的负担,达到负载均衡的目的。
首先要确定域名
www.test.com
在DNS上的记录对应apache服务器接口上具有internet合法注册的IP地址,这样才能使internet上对www.test.com
的所有连接请求发送给本台apache服务器。
在本台服务器的apache配置文件httpd.conf中添加如下设置
:
proxypass
/news http://192.168.1.1
proxypass /it http://192.168.1.2
proxypass /life http://192.168.1.3
proxypass /live http://www.live.com
注意,此项设置最好添加在httpd.conf文件“Section
2”以后的位置,服务器192.168.1.1-3也应是具有相应功能的www服务器,在重启服务时,最好用apachectl
configtest命令检查一下配置是否有误。
接下来也是我真正想要介绍的2.2版本后在mod_proxy中新添加的mod_proxy_balancer模块给我们带来的新功能。
首先将在主配置文件http.conf以下Module的注释去掉
LoadModule
proxy_module modules/mod_proxy.so
LoadModule proxy_balancer_module
modules/mod_proxy_balancer.so
LoadModule proxy_http_module
modules/mod_proxy_http.so
再并增加以下元素
ProxyRequests Off
ProxyPass
/test balancer://xuanfei stickysession
=jsessionid nofailover=On
<proxy
balancer://xuanfei/>
BalancerMember
http://192.168.28.131
loadfactor=1
BalancerMember
http://192.168.28.130
loadfactor=1
</proxy>
ProxyPass为代理转发的Url,即将所有访问/test的请求转发到群集balancer://xuanfei
loadfactor为各主机间的负载比例参数,可是设置不同指数
BalancerMember为群集的成员,即群集服务器A或B,负载均衡服务器会根据均衡规则来将请求转发给BalancerMember。
配置好后,启动Apahce服务<Location
/server-status>
SetHandler server-status
Order Deny,Allow
Deny from
all
Allow from
all
</Location>
器,访问xuanfei/test就会看到群集服务器中应用返回的结果。恭喜你,负载均衡和群集已经配置成功了!
而且还可以同样在http.conf主配置文件主添如下元素:
<Location
/balancer-manager>
SetHandler balancer-manager
Order
Deny,Allow
Deny from all
Allow from
all
</Location>
如果配置成功后你可以可以在地址栏输入
xuanfei/balancer-manager,将可以清楚的看到各节点的工作运行状态:)
同样还可以同样在http.conf主配置文件主添如下元素:
<Location
/server-status>
SetHandler server-status
Order Deny,Allow
Deny from
all
Allow from all
</Location>
便可以方便的观测到主服务器的当前运行状态,只要在地址栏输入
xuanfei/server-status
用ab对apache负载均衡集群的性能测试对比报告
小结:apache自带mod_proxy功能模块中目前可以实现两种不同的负载均衡集群实现方式,第一种是分工合作的的形式,通过各台主机负责不同的任
务而实现任务分工。第二种是不同的机器在担任同样的任务,某台机器出现故障主机可以自动检测到将不会影响到客户端,而第一种却不能实现但第一种实现方式的
优点在于他是主服务器负担相应没第二种大因为台只是提供跳转指路功能,形象的说他不给你带路只是告诉你有条路可以到,但到了那是否可以看到你见的人他已经
不会去管你了:)。相比之下第二种性能要比第一种会好很多;但他们都有个共同点都是一托N形式来完成任务的所以你的主机性能一定要好o
如以上内容有误或有不足之处,望朋友能给予意见或者建议!谢谢:)
参考资料:wwww
http://httpd.apache.org/docs/2.2/mod/mod_proxy.html
#proxy
分享到:
相关推荐
2. **提高系统性能**:另一种策略是基于Session ID的负载均衡,Apache记录每个请求的Session ID和响应的Tomcat服务器。这样,后续的请求可以直接转发到之前处理过的服务器,实现负载分发。这种方法不需要在服务器间...
**LoopbackMode**是一种模式,它允许在同一台机器上的多个Tomcat实例之间进行通信,而无需通过网络接口。在配置`workers.properties`时,如果所有服务器都在同一台机器上,可能需要启用此模式以提高性能。 总的来说...
最后,通过Apache HTTP Server将用户请求分发到Tomcat集群的不同节点上,利用mod_proxy模块来配置反向代理,将请求转发到后端的Tomcat实例。这样,就完成了整个Mod_Proxy+Apache+Tomcat负载均衡与集群的配置过程。
- **mod_proxy**:另一种选择,支持 HTTP、HTTPS 和 AJP 协议,可以更灵活地配置负载均衡策略。 4. **配置过程**: - **安装与配置 Apache 和 Tomcat**:首先在各服务器上分别安装 Apache 和 Tomcat,并确保它们...
- **安装另一台服务器**:按照上述步骤在另一台服务器上完成安装。 - **同步配置**:确保两台服务器上的`server.xml`文件中的memcached配置保持一致。 #### 四、注意事项 - **安全**:确保防火墙设置允许memcached...
JSP是Servlet的另一种形式,它允许开发者在HTML中嵌入Java代码,更方便地创建动态网页。Tomcat作为Servlet和JSP容器,负责解析和执行这些代码。 3. **部署应用**:在Tomcat中部署Web应用通常涉及将WAR(Web ARchive...
另一种方法是利用共享存储(如内存缓存、数据库或分布式缓存系统如Redis)来存储 `session`。每个 `tomcat` 实例都可以访问这个共享存储,从而实现 `session` 共享。这种方法减少了服务器间的通信,但增加了对共享...
另一种方法是将Session数据持久化到数据库中。这种方式可以提供更高的可靠性和数据持久性,但可能会增加数据库的负担,尤其是在高并发情况下。 #### 3. **基于文件系统的复制** 虽然不常见,但也可以通过文件系统...
另一个文件"apache-tomcat-7.0.96-windows-x64.zip"则可能是RAR文件解压后的结果,包含了Tomcat服务器的所有组件,如bin目录下的可执行文件(如`catalina.bat`、`startup.bat`和`shutdown.bat`),conf目录下的配置...
另一种方法是利用Nginx的sticky模块,让特定的用户请求始终被转发到同一台服务器,从而保持session的连续性。 在Nginx配置中启用sticky模块示例: ```nginx http { upstream tomcat_cluster { ip_hash; # 使用IP...
而JavaServer Pages(JSP)是另一种Java技术,它允许开发者将HTML代码与Java代码分离,使得动态内容的生成更加容易。 **Tomcat结构和组件:** 1. **Catalina** - 这是Tomcat的主要组件,实现了Servlet和Servlet容器...
这样的架构可以轻松处理大约5万并发连接,因为Nginx能有效地分发流量,同时Tomcat集群可以并行处理请求。然而,实际并发性能还取决于硬件资源、网络状况、应用本身的性能等因素。 在实际部署中,还需要考虑其他因素...
Servlet是用于扩展服务器功能的Java代码,而JSP则提供了一种更直观的方式来创建动态网页,将HTML与Java代码分离。 2. **Servlet容器**:Tomcat作为Servlet容器,负责加载、管理、执行Servlets,并处理与Web应用程序...
3. **FST(Fast-Serialization)序列化**:FST是另一种高效序列化库,它的性能优于Java序列化和Kryo,同时提供了更好的反序列化安全性和较小的字节流。 4. **JSON序列化**:通过将对象转化为JSON字符串,可以在多个...
另一种方法是使用集中式Session存储,如Memcached或Redis,将Session数据存放在这些内存数据库中,各Tomcat实例都能访问。 **三、负载均衡策略** 1. **轮询(Round Robin)** 请求依次分配给各个服务器,是最...
2. **JavaServer Pages (JSP)**: JSP是Java平台上的另一种Web开发技术,它将HTML代码和Java代码分离,使得开发者可以更专注于页面的布局和设计。Tomcat能够解析JSP文件,并将其转换为Servlet,然后执行生成的Servlet...
【标题】"tomcat7+memcached+nginx 集群架包(无ngnix架包)"指的是一个用于构建高性能、可扩展的Web应用集群的解决方案,但不包括nginx配置部分。在这个架构中,Tomcat7作为Java应用服务器处理HTTP请求,Memcached...