Apache+Tomcat +mod_proxy集群负载均衡及session

  序言:

在玩Apache+Tomcat +mod_jk集群负载均衡及session的时候发现,还有一种方式可以实现,就是网上各位大牛们说的mod_proxy反向代理。

实在弄的我的知识细胞洋洋。实践后打个报告,给自己。。

环境说明:

操作系统:win7   64位

Javajdk: 1.7 
Apache:httpd-2.2.25-win32-x86-no_ssl.msi    (本地安装路径:D:\Program Files (x86)\Apache2.2\)
Tomcat: 7.0.42  ( http://tomcat.apache.org/download-70.cgi ),如果在同一台机器上模拟,下载zip版本. 实例中展示了2个节点
mod_jk: mod_jk1.2.30_x64:  ( http://tomcat.apache.org/download-connectors.cgi )

 安装步骤:

1.安装jdk
2.安装Apache2.2,使用默认设置,并且安装路径中不要空格.
3.解压tomcat

配置步骤

修改Apache配置:

关于修改涉及到的文件httpd.conf

(1)

如图:

LoadModule proxy_module modules/mod_proxy.so

LoadModule negotiation_module modules/mod_negotiation.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.同时将下图中得这段代码同时放开注释。

# Virtual hosts
Include conf/extra/httpd-vhosts.conf

(3)文件末尾加入代码

ProxyRequests Off
   <proxy balancer://cluster>
       BalancerMember ajp://127.0.0.1:9988 loadfactor=1 route=tomcat1
       BalancerMember ajp://127.0.0.1:9999 loadfactor=1 route=tomcat2
   </proxy>  
9988 与 9999, route=tomcat1  对应tomcat   server.xml的<Connector port="9988" protocol="AJP/1.3" redirectPort="8443" /><Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1">含义:告诉apache服务器,使用mod_proxy反向代理。

(4).在conf/extra/httpd-vhosts.conf中添加代码
<VirtualHost *:80>   // 对应httpd.conf  服务器端口号
         ServerAdmin [email protected]  //对应httpd.conf  ServerAdmin
         ServerName 127.0.0.1
         ServerAlias localhost
         ProxyPass / balancer://cluster/ stickysession=jsessionid nofailover=On  //proxypass 指定的是分发器。以及session复制
         ProxyPassReverse / balancer://cluster/
         ErrorLog "logs/proxyTest-error.log"    //日志信息
         CustomLog "logs/lbtest-access.log" common
     </VirtualHost> 

实例测试

首先启动apache 服务器, 测试服务器是否正常启动。再次启动tomcat,测试是否正常启动。如遇错误可查看错误日志解决。

1.在web.xml文件中增加

<distributable/>

2.编写测试jsp代码 

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ page import="java.text.SimpleDateFormat"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>Tomcat集群测试</title>
  </head>

  <body>
        服务器信息:

    <%
      String dtm = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(new Date());
      System.out.println("["+request.getLocalAddr()+":"+ request.getLocalPort()+"]" + dtm);
      out.println("<br>["+request.getLocalAddr()+":" +request.getLocalPort()+"]" + dtm+"<br>");
    %>

    session分发:
    <%
        session.setAttribute("name","dennisit");
        System.out.println("[session分发] session id:"+session.getId());
        out.println("<br>[session分发] session id: " + session.getId()+"<br>");
    %>
  </body>
</html>

实列效果

(2)  访问 http://localhost/tomcat_apche/  刷新3次效果看到session  id  相同

并且访问到不同tomcat服务器.表明。实现负载均衡及session 共享。

完事!!!

时间: 2024-10-26 19:00:45

Apache+Tomcat +mod_proxy集群负载均衡及session的相关文章

Nginx+tomcat配置集群负载均衡

转自:http://blog.csdn.net/bruce_6/article/details/38228299 相信很多人都听过nginx,这个小巧的东西慢慢地在吞食apache和IIS的份额.那究竟它有什么作用呢?可能很多人未必了解. 说到反向代理,可能很多人都听说,但具体什么是反向代理,很多人估计就不清楚了.摘一段百度百科上的描述: 反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回

转】Nginx+tomcat配置集群负载均衡

原博文出自于:http://blog.csdn.net/bruce_6/article/details/38228299         感谢! 相信很多人都听过nginx,这个小巧的东西慢慢地在吞食apache和IIS的份额.那究竟它有什么作用呢?可能很多人未必了解. 说到反向代理,可能很多人都听说,但具体什么是反向代理,很多人估计就不清楚了.摘一段百度百科上的描述: 反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务

nginx+tomcat集群负载均衡(实现session复制)

转自:http://talangniao.iteye.com/blog/341512 架构描述 前端一台nginx服务器做负载均衡器,后端放N台tomcat组成集群处理服务,通过nginx转发到后面(注:没做动静分离,静态动态全部都转给tomcat) 优点:实现了可弹性化的架构,在压力增大的时候可以临时添加tomcat服务器添加到这个架构里面去 一,配置nginx 1,  下载包 Wget http://sysoev.ru/nginx/nginx-0.6.32.tar.gz ftp://ftp.

Nginx,tomcat实现集群负载均衡

一.       工具 nginx-1.8.0 apache-tomcat-6.0.33 二.    目标 实现高性能负载均衡的Tomcat集群: 三.    步骤 1.首先下载Nginx,要下载稳定版: 2.然后解压两个Tomcat,分别命名为apache-tomcat-6.0.33-1和apache-tomcat-6.0.33-2: 3.然后修改这两个Tomcat的启动端口,分别为18080和28080,下面以修改第一台Tomcat为例,打开Tomcat的conf目录下的server.xml

图文解说:Nginx+tomcat配置集群负载均衡

开发的应用采用F5负载均衡交换机,F5将请求转发给5台hp unix服务器,每台服务器有多个webserver实例,对外提供web服务和socket等接口服务.之初,曾有个小小的疑问为何不采用开源的apache.Nginx软件负载,F5设备动辄几十万,价格昂贵?自己一个比较幼稚的问题,后续明白:F5是操作于IOS网络模型的传输层,Nginx.apache是基于http反向代理方式,位于ISO模型的第七层应用层.直白些就是TCP UDP 和http协议的区别,Nginx不能为基于TCP协议的应用提

Windows下用Nginx+Tomcat配置集群负载均衡

Nginx是一款轻量级的web服务器/反向代理服务器,更详细的释义自己百度了.目前国内像新浪.网易等都在使用它.先说下我的服务器软件环境: 系统:windows_server_2008_standard_enterprise_and_datacenter_with_sp2_x64 当前运行的Tomcat:非安装版本Tomcat 6.0.36 就说这两个关键的吧,目前遇到的问题是访问量剧增单个tomcat已无力负载了,经常出现超时的情况.于是就计划用nginx布置负载均衡,网络上查到的资料多是介绍

Tomcat+Nginx集群负载均衡

nginx配置 #user  nobody; worker_processes  16; error_log  logs/error.log  info; pid        logs/nginx.pid; worker_rlimit_nofile 65535; events{ #use epoll; worker_connections  4096; } http { include       mime.types; default_type  application/octet-stre

Tomcat学习总结(8)——Tomcat+Nginx集群解决均衡负载及生产环境热部署

近日,为解决生产环境热部署问题,决定在服务器中增加一个tomcat组成集群,利用集群解决热部署问题. 这样既能解决高并发瓶颈问题,又能解决热部署(不影响用户使用的情况下平滑更新生产服务器)问题. 因为项目是前后端分离的,所以本以为成本很低,没想到遇到了一系列的坑,解决了2天才搞定,发现了很多不是集群而是项目本身的问题. 我是同一个服务器下配置tomcat和nginx等,本文主要面向有一定基础的读者,基本配置就不在本文累述了(基础问题可以留言或者发邮件). 0x0_1 服务器环境 服务器: Cen

nginx+双tomcat集群负载均衡(一台机器)

nginx简介 Nginx ("engine x") 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器. Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,第一个公开版本0.1.0发布于2004年10月4日.其将源代码以类BSD许可证的形式发布,因它的稳定性.丰富的功能集.示例配置文件和低系统资源的消耗而闻名. 下面是采用一台机器nginx+双tomcat集群负载均衡方案.当更新项目时可以停止