Apache 负载均衡 端口转发 配置

摘要:
1.解压编译包tar-xzvf**.tar.gz2.进入解压后的目录,运行configure命令./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-balancer3.执行编译命令make4.执行安装命令makeinstall安装完毕!
转载自:https://blog.csdn.net/snihcel/article/details/38844323
[端口转发配置]
通过http_proxy做tomcat的端口转发:
描述:将远程服务器映射到本地服务器的URL空间
语法:ProxyPass [路径] !|url [键=值 键=值 ...]] [nocanon]
上下文: server config, virtual host, directory
状态:扩展
模块:mod_proxy
配置httpd.conf:
#保证以下模块加载
      LoadModule proxy_module modules/mod_proxy.so
      LoadModule proxy_http_module modules/mod_proxy_http.so
#配置ProxyPass
      ProxyPass /new/ http://mysite.com/
      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.解压编译包
tar -xzvf **.tar.gz
2.进入解压后的目录,运行configure命令
./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.执行编译命令
make
4.执行安装命令
make install
安装完毕!
第二,配置Apache,使其通过http_proxy实现负载均衡
1.编写一个负载均衡的配置文件,文件名随意吧,我写的是"balance.conf",内容如下:
                   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
 
                  <VirtualHost *:80>#DocumentRoot "F:liuqiWorksmyprojecteclipseworkciesi"ServerName localhost2
                      ProxyPreserveHost On
                      ProxyRequests Off
                      ErrorLog logs/localhost2.cn-error_log
                      CustomLog logs/localhost2.cn-access_log common
 
                      ProxyPass / balancer://tomcat/
                      ProxyPassReverse / http://localhost2:8080/
                      ProxyPassReverse / http://localhost2:8081/
 
                  </VirtualHost>
 
 
                  <Proxy balancer://tomcat>   
                   BalancerMember http://localhost2:8080 loadfactor=2
                   BalancerMember http://localhost2:8081 loadfactor=1
                  </Proxy>
 
2.编辑httpd.conf文件,包含刚才的配置文件balance.conf,在httpd.conf底部添加如下
include "xxx/xxx/balance.conf" # xxx/xxx/是balance.conf所在的路径
注意,如果是编译安装apache,httpd.conf里好像是没有加载各种so库文件的,可能会启动不了apache,如果是这样的话请添加或从注释里激活以下模块,
                    LoadModule actions_module modules/mod_actions.so
                    LoadModule alias_module modules/mod_alias.so
                    LoadModule asis_module modules/mod_asis.so
                    LoadModule auth_basic_module modules/mod_auth_basic.so
                    LoadModule authn_default_module modules/mod_authn_default.so
                    LoadModule authn_file_module modules/mod_authn_file.so
                    LoadModule authz_default_module modules/mod_authz_default.so
                    LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
                    LoadModule authz_host_module modules/mod_authz_host.so
                    LoadModule authz_user_module modules/mod_authz_user.so
                    LoadModule autoindex_module modules/mod_autoindex.so
                    LoadModule cgi_module modules/mod_cgi.so
                    LoadModule dir_module modules/mod_dir.so
                    LoadModule env_module modules/mod_env.so
                    LoadModule include_module modules/mod_include.so
                    LoadModule log_config_module modules/mod_log_config.so
                    LoadModule mime_module modules/mod_mime.so
                    LoadModule negotiation_module modules/mod_negotiation.so
                    LoadModule setenvif_module modules/mod_setenvif.so
Apache配置完毕。
3.Tomcat集群配置,我用的是版本号是7.0.x,有2个tomcat节点,主要是修改每个tomcat节点下的conf/server.xml这个文件,其实就是修改其中一个tomcat节点的几个端口,这样2个tomcat就可以同时运行起来了,配置如下,
我把8005改成了8006:
   <Server port="8006" shutdown="SHUTDOWN">
我把8080改成了8081:
  <Connector port="8081" protocol="HTTP/1.1"   connectionTimeout="20000"  redirectPort="8443" />
我把8009改成了8019
 <Connector port="8019" protocol="AJP/1.3" redirectPort="8443" />
激活tomcat集群,并注释掉原来的默认属性
                    <Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm2">
                    <!-- <Engine name="Catalina" defaultHost="localhost"> -->
                    <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 负载均衡 端口转发 配置》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇ArcGIS图层和要素的过滤显示五十款阿里开源软件说明介绍下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Nginx配置upstream实现负载均衡--引用别人的文章

如果Nginx没有仅仅只能代理一台服务器的话,那它也不可能像今天这么火,Nginx可以配置代理多台服务器,当一台服务器宕机之后,仍能保持系统可用。具体配置过程如下: 1. 在http节点下,添加upstream节点。 upstream linuxidc {       server 10.0.6.108:7080;       server 10.0.0....

.htaccess教程:简介、访问控制、验证、目录浏览控制

一、.htaccess简介 1.什么是.htaccess .htaccess是一个纯文本文件,里面存放着Apache服务器配置相关的一些指令,它类似于Apache的站点配置文件,如httpd.conf(Apache2已经支持多站点,因此你的站点配置文件可能在/etc/apache2/conf.d/目录下)。.htaccess与httpd.conf配置文件不...

Nginx 安装及配置、负载均衡https网站及转发后页面js、css等路径找不到问题、更换证书导致问题解决

官网下载nginx:http://nginx.org/en/download.html 安装nginx编译环境:yum install -y gcc-c++ 安装pcre库解析正则:yum install -y pcre pcre-devel 安装zlib库用于压缩解压缩:yum install -y zlib zlib-devel 安装openssl库...

apache配置虚拟目录和URL重定向

1. 虚拟目录 认识虚拟目录 虚拟目录就是在站点中建立一个链接指向某个物理路径,可用于发布站点主目录以外资源或缩短物理路径 虚拟目录配置命令 a. alias URL-path 物理路径 映射URL到文件系统的特定区域 b. aliasMatch 正则表达式 物理路径 使用正则表达式映射URL到文件系统 c. scriptAlias URL-path 物理...

PHP如何实现网址伪静态(转)

Apache的 mod_rewrite是比较强大的,在进行网站建设时,可以通过这个模块来实现伪静态。主要步骤如下: 1、检测Apache是否开启mod_rewrite功能     可以通过php提供的phpinfo()函数查看环境配置,找到“Loaded Modules”, 其中列出了所有apache2handler已经开启的模块,如果里面包括“mod_...

Tomcat 下4个配置文件详解

Tomcat 的配置文件由4个 xml 文件构成,context.xml、web.xml、server.xml、tomcat-users.xml 这4个文件。每个文件都有自己的功能与配置方法,下列将逐一介绍这几个文件的配置: 一、context.xml 文件 Context.xml 是 Tomcat 公用的环境配置,tomcat 服务器会定时去扫描这个文件...