转载自:https://blog.csdn.net/snihcel/article/details/38844323
[端口转发配置]
      通过http_proxy做tomcat的端口转发:
      描述:将远程服务器映射到本地服务器的URL空间
      语法:ProxyPass [路径] !|url [键=值 键=值 ...]] [nocanon] 
      上下文: server config, virtual host, directory
      状态:扩展
      模块:mod_proxy
      配置httpd.conf:
      #保证以下模块加载
  1. LoadModule proxy_module modules/mod_proxy.so
  2. LoadModule proxy_http_module modules/mod_proxy_http.so
      #配置ProxyPass
  1. ProxyPass /new/ http://mysite.com/
  2. ProxyPass /new2/ http://192.168.0.169:8080/
[负载均衡配置]

通过http_proxy做负载均衡有个好处,不用MOD_JK,不用写太多的配置文件了,而且据说JK做负载均衡当其中一个Tomcat节点死掉,Apache就不会向该节点发送请求了,而http_proxy会一直发,但该死亡的Tomcat重启后就没事了,这个不清楚,我用的Apache版本是2.2.x,采用http_proxy时,反正session正常复制,感觉不到关闭一个Tomcat节点后对整个负载均衡的影响,大家自己拿捏吧,下面是我的配置:

      第一,(如果是安装的windows,可以不看第一步了,往下看第二步吧)安装Apache,我选用的版本是2.2.x,我是安装在CentOS4.4这个Linux操作系统里的,之前系统自带的是2.0.52,http_proxy提示"BalancerMember不识别,缺少相关的so文件",所以我重新下了个2.2.64的版本,而且听说2.2.x版本修正了一些BUG和大幅提高了一些性能,下面是编译安装步骤。
               1.解压编译包
  1. tar -xzvf **.tar.gz
               2.进入解压后的目录,运行configure命令

  1. ./configure --enable-modules=most --enable-mods-shared=most --enable-proxy --enable-proxy-connect --enable-proxy-ftp --enable-proxy-http --enable-proxy-scgi --enable-proxy-ajp --enable-proxy-balancer
               3.执行编译命令
  1. make
               4.执行安装命令
  1. make install
               安装完毕!
 
      第二,配置Apache,使其通过http_proxy实现负载均衡
               1.编写一个负载均衡的配置文件,文件名随意吧,我写的是"balance.conf",内容如下:
  1. LoadModule proxy_module modules/mod_proxy.so
  2. LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
  3. LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
  4. LoadModule proxy_connect_module modules/mod_proxy_connect.so
  5. LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
  6. LoadModule proxy_http_module modules/mod_proxy_http.so
  7.  
  8. <VirtualHost *:>
  9. #DocumentRoot "F:\liuqiWorks\myproject\eclipsework\ciesi"
  10. ServerName localhost2
  11. ProxyPreserveHost On
  12. ProxyRequests Off
  13. ErrorLog logs/localhost2.cn-error_log
  14. CustomLog logs/localhost2.cn-access_log common
  15.  
  16. ProxyPass / balancer://tomcat/
  17. ProxyPassReverse / http://localhost2:8080/
  18. ProxyPassReverse / http://localhost2:8081/
  19.  
  20. </VirtualHost>
  21.  
  22. <Proxy balancer://tomcat>
  23. BalancerMember http://localhost2:8080 loadfactor=2
  24. BalancerMember http://localhost2:8081 loadfactor=1
  25. </Proxy>
                2.编辑httpd.conf文件,包含刚才的配置文件balance.conf,在httpd.conf底部添加如下
                    include "xxx/xxx/balance.conf"  # xxx/xxx/是balance.conf所在的路径
 
                    注意,如果是编译安装apache,httpd.conf里好像是没有加载各种so库文件的,可能会启动不了apache,如果是这样的话请添加或从注释里激活以下模块,
  1. LoadModule actions_module modules/mod_actions.so
  2. LoadModule alias_module modules/mod_alias.so
  3. LoadModule asis_module modules/mod_asis.so
  4. LoadModule auth_basic_module modules/mod_auth_basic.so
  5. LoadModule authn_default_module modules/mod_authn_default.so
  6. LoadModule authn_file_module modules/mod_authn_file.so
  7. LoadModule authz_default_module modules/mod_authz_default.so
  8. LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
  9. LoadModule authz_host_module modules/mod_authz_host.so
  10. LoadModule authz_user_module modules/mod_authz_user.so
  11. LoadModule autoindex_module modules/mod_autoindex.so
  12. LoadModule cgi_module modules/mod_cgi.so
  13. LoadModule dir_module modules/mod_dir.so
  14. LoadModule env_module modules/mod_env.so
  15. LoadModule include_module modules/mod_include.so
  16. LoadModule log_config_module modules/mod_log_config.so
  17. LoadModule mime_module modules/mod_mime.so
  18. LoadModule negotiation_module modules/mod_negotiation.so
  19. LoadModule setenvif_module modules/mod_setenvif.so
 
                    Apache配置完毕。
 
               3.Tomcat集群配置,我用的是版本号是7.0.x,有2个tomcat节点,主要是修改每个tomcat节点下的conf/server.xml这个文件,其实就是修改其中一个tomcat节点的几个端口,这样2个tomcat就可以同时运行起来了,配置如下,
 
                   我把8005改成了8006:

  1. <Server port="" shutdown="SHUTDOWN">
                   
                    我把8080改成了8081:

  1. <Connector port="" protocol="HTTP/1.1" connectionTimeout="" redirectPort="" />
 
                    我把8009改成了8019

  1. <Connector port="" protocol="AJP/1.3" redirectPort="" />
 
                    激活tomcat集群,并注释掉原来的默认属性
  1. <Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm2">
  2. <!-- <Engine name="Catalina" defaultHost="localhost"> -->
  3. <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
 
                    Tomcat配置完毕,然后修改web工程的WEB-INF/web.xml文件,添加一个标签 <distributable/>
                     注意:整个工程中,所有的session里的属性值,必须实现了java.io.Serializable接口,一般的变量类型,例如String,Map,Int等肯定已经实现的,没啥问题,但如果自定义的一个类,要想使用session.setAttribute("xxx",Your.class)的话,这时你写的类就必须要实现java.io.Serializable这个接口了,不然会报错!
 
      至此Apache和Tomcat的配置都完成了,启动Apache和参与集群的多个Tomcat即可,这时你后台登录后,关掉其中有一个Tomcat的话,网站依然运行,因为session已经复制到了另外一个Tomcat之中。
                         

注意:如果Linux下组播未开启,Tomcat是无法进行session复制的,请执行 route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0

Apache 负载均衡 端口转发 配置的更多相关文章

  1. 1.Apache+Tomcat负载均衡+集群配置

    1.本文Apache+Tomcat集群配置 基于最新的Apache和Tomcat,具体是2011年4月20日最新的Tomcat和Apache集群和负载均衡配置. 准备环境 Apache Apache是 ...

  2. Apache负载均衡配置

    使用mod_proxy 配置Apache负载均衡 1.安装apache ./configure --prefix=/usr/local/apache2 –enable-so make &&am ...

  3. nginx负载均衡之入门配置

    先来简单了解一下什么是负载均衡,单从字面上的意思来理解就可以解释N台服务器平均分担负载,不会因为某台服务器负载高宕机而某台服务器闲置的情况.那么负载均衡的前提就是要有多台服务器才能实现,也就是两台以上 ...

  4. JBOSS通过Apache负载均衡方法一:使用mod_jk

    JBOSS通过Apache负载均衡方法一:使用mod_jk   本文第一.二节分别对Linux环境下前端使用Apache以及windows环境下前端使用IIS通过AJP协议和后端的JBOSS通信实现负 ...

  5. Nginx 反向代理 负载均衡 虚拟主机配置

    Nginx 反向代理 负载均衡 虚拟主机配置 通过本章你将学会利用Nginx配置多台虚拟主机,清楚代理服务器的作用,区分正向代理和反向代理的区别,搭建使用Nginx反向搭理和负载均衡,了解Nginx常 ...

  6. 【转】Nginx 反向代理 负载均衡 虚拟主机配置

    原文:http://www.cnblogs.com/itdragon/p/8059000.html Nginx 反向代理 负载均衡 虚拟主机配置 通过本章你将学会利用Nginx配置多台虚拟主机,清楚代 ...

  7. Azure Load Balancer(二) 基于内部的负载均衡来转发为访问请求

    一,引言 上一节,我们使用 Azure Load Balancer 类型为外部的,来转发我们的 Web 服务.今天我们看看另一种类型为 “Internal” 的 Azure Load Balancer ...

  8. 干货 | Nginx负载均衡原理及配置实例

    一个执着于技术的公众号 Nginx系列导读 给小白的 Nginx 10分钟入门指南 Nginx编译安装及常用命令 完全卸载nginx的详细步骤 Nginx 配置文件详解 理解正向代理与反向代理的区别 ...

  9. Apache负载均衡

    Apache负载均衡 Apache也是可以实现负载均衡的.Apache的负载均衡主要是通过mod_proxy_balancer实现的.那么,apache负载均衡的配置方法是什么样的? 在apache的 ...

随机推荐

  1. stringstream的使用

    stringstream是 C++ 提供的另一个字串型的串流(stream)物件,和之前学过的iostream.fstream有类似的操作方式.要使用stringstream, 必须先加入这一行: # ...

  2. Boxes in a Line UVA - 12657 (双向链表)

    题目链接:https://vjudge.net/problem/UVA-12657 题目大意:输入n,m  代表有n个盒子 每个盒子最开始按1~n排成一行  m个操作, 1 x y  :把盒子x放到y ...

  3. Unity GetComponentsInChildren

    1 Component.GetComponentsInChildren 和 GameObject.GetComponentsInChildren 一样吗?  API上解释一样. 2. //拿到游戏对象 ...

  4. UGUI RectTransform 矩形变换

    UGUI游戏对象基本都有这个组件. float radius; radius = GetComponent<RectTransform>().sizeDelta.x; radius = ( ...

  5. java多线程之守护线程与非守护线程

    在java线程中有两种线程,一种是用户线程,其余一种是守护线程. 守护线程具有特殊的含义,比如gc线程.当最后一个非守护线程执行完后,守护线程随着jvm一同结束工作. java中的守护线程需要将Dae ...

  6. vscode好用的扩展及常用的快捷键

    1.open-in-browser 或者view in browser  安装后右键即可快速打开浏览器 2.quokka调试工具插件,能对正在编写的代码提供实时反馈,并能预览变量的函数和计算结果 3. ...

  7. svg用作背景图

    svg用做背景图的几种方式 1. 直接使用 background: url('data:image/svg+xml;charset=utf-8,<svg width="10" ...

  8. 超链接导致window.location.href失效的解决办法

    通常我们采用 window.location.href 执行页面间的跳转,比如下面的语句 window.location.href = 'https://www.baidu.com/'; 一般执行上面 ...

  9. The ninth day

    a good egg 可不是好的鸡蛋的意思哦 它等同于 a good person 大好人的意思 eg: We all think he is a good egg. 我们都认为他是一个好人. I t ...

  10. CSS透明度设置(兼容性)

    一句话搞定透明背景! .transparent_class { filter:alpha(opacity=50); -moz-opacity:0.5; -khtml-opacity: 0.5; opa ...