博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
linux 下 apache tomcat 高可用负载集群
阅读量:6971 次
发布时间:2019-06-27

本文共 5729 字,大约阅读时间需要 19 分钟。

  hot3.png

环境:

linux centos7

jdk1.7

tomcat7

apache2.4

所需资源包列表

apr           #好像1.5版本

apr-util    #好像1.5版本

#以上,都可以在:http://apr.apache.org/download.cgi 中下载

pcre         #Perl工具 

#下载地址: ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/

#不要下载pcre2

linux下,源码安装就是各种依赖比较蛋疼,其他的配置跟win下差不多。

PS:我首先是把所有要安装的源码包和安装文件下载好

sp 0: 安装jdk

由于open jdk 和 Oracle 的jdk在有些方面不兼容(或者缺失),而且我们一般在开发中使用的Oracle jdk.

具体可以查看:http://fgh2011.iteye.com/blog/1771649 

切换到root用户下   # su root   # Password: 输入密码 查看当前jdk版本   # java -versionprf: java version "xxxxx"   .....

  

则表示已经安装了jdk

我们需要替换我们自己安装的,所以我们要先去卸载了jdk

查询我们安装的jdk信息

#rpm -qa | grep jdk

出现了xxxxx_openjdk_xxxx的条目,选择第一个复制

然后我们删除

#yum -y remove java 上面复制的内容

等待完成删除

#java -version

然后重复以上操作,直到java -version 没有jdk的信息或者rpm -qa | grep jdk没有了条目信息即可

安装

我们下载好的jdk.rpm文件

#rpm -ivh jdk安装包路径
#java -version

有版本信息表示已经安装好了

sp 1: 安装apache

首先我们先来安装依赖包,分辨进入各自解压好的文件夹中

    复制到/usr/local/下

 

  #cp 源文件 目标文件夹    解压命令:#tar -zxvf  xxxxx.gz

    1.1 安装apr

    把我们的源码包解压

   

#./configure --prefix=/usr/local/apr    #make && make install

    

    1.2 安装apr-util

    把我们的源码包解压

    

#./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr#make && make install

    PS:因为我们现在是已知缺少这两个依赖,所以我就先安装了。

    1.3 安装apache 

   

 ./configure --prefix=/usr/local/apache --enable-so -enable-proxy -enable-proxy_http=shared--enable-module=so --enable-mods-shared=all --enable-proxy-ajp=shared  --enable-proxy-balancer -with-mpm=worker --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util

    提示缺少 pcre

    这里可能有个问题,因为一般的系统会带有pcre,千万不要卸载系统自带的pcre包,这个,你可以试试。

    1.4 安装pcre (这里可以跳过,直接使用系统自带的pcre)

    源码包cp到我们/usr/local下

    然后解压

   

#cd ./pcre-xx.xx.xx    #./configure --prefix=/usr/local/pcre    #make && make install

    1.5 给我们的1.3步骤上加上 pcre的依赖

     

#./configure --prefix=/usr/local/apache2.4 --enable-so -enable-proxy -enable-proxy_http=shared--enable-module=so --enable-mods-shared=all --enable-proxy-ajp=shared  --enable-proxy-balancer -with-mpm=worker --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --with-pcre=/user/local/pcre

    PS:反正这个地方,如果少神马依赖就添加安装神马依赖(不能使用pcre2)

        #--prefix :这个指定需要安装的路径

        #--enalbe-so :这个指定你需要打开的so模块

        #-enable-xxxxx:这个指定具体的模块

        #以上除了--prefix,有必要设定以外,其他的可以可以省略到最后手动配置

        #--with-xxxx :这个指定编译安装所需要的依赖

   

#make && make install

    如果安装通过,我们就可以进行下一步了

    

  sp 2.配置apahce

    2.1 修改httpd.conf    

   

#vim /usr/local/apache2.4/conf/httpd.conf

    修改ServerName 为本机ip

    打开我们要使用的so module

    在DirectoryIndex 添加 index.jsp

    

    保存修改

   

#:wq!

    

    启动apache

   

#/usr/local/apache2.4/bin/apachectl start

    如果在浏览器上,访问127.0.0.1没有出现It's works!表示没有启动成功。

    我们可以查看错误日志来解决问题

 

  #less /usr/local/apache2.4/logs/error.log

    

    查看apache是否正常的运行了

   

#ps -ef | grep httpd

    

   

重启:restart ,关闭:stop

    

 sp 3. 安装tomcat(这里我们使用3个tomcat来测试我们是否搭建成功)

    3.1 解压我们下载的tomcat包

    3.2 复制3个,分辨命名为:tomcat7.1 tomcat7.2 tomcat7.3

    3.3 cp到/usr/local/下面

 sp 4.进行集群的配置(这里我们使用ajp)

        Ps:1.

                

     4.1 配置tomcat中的

        4.1.1 改shutdown 端口,同一服务器下不一样

           

        4.1.2 改http port redirectPort,同一服务器下不一样

        4.1.3 改ajp port redirectPort,同一服务器下不一样

        4.1.4 改 Engine 加上 jvmRoute 需要跟httpd.conf中保持一致

        4.1.5 加上Cluster  具体如下(Receiver  port="5001|5002|5003"   同一服务器下,不能一样)

            

        
        
          
          
          
            
                    
          
          
                
        
        
      

        4.1.6 添加一个测试项目

            省略

        4.1.7 改项目web.xml

            添加 <distributable /> 节点

      4.2 配置 httpd.conf中的

       

ProxyVia Off        ProxyRequests Off        
             BalancerMember "ajp://127.0.0.1:9001" loadfactor=1 route="jvm1"             BalancerMember "ajp://127.0.0.1:9002" loadfactor=1 route="jvm2"             BalancerMember "ajp://127.0.0.1:9003" loadfactor=1 route="jvm3"             ProxySet lbmethod=bytraffic                
            SetHandler balancer-manager            Require host localhost        

        打开的模块

       

        #可能不需要这么多        LoadModule proxy_module modules/mod_proxy.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        LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so        LoadModule proxy_scgi_module modules/mod_proxy_scgi.so        LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so        LoadModule proxy_ajp_module modules/mod_proxy_ajp.so        LoadModule proxy_balancer_module modules/mod_proxy_balancer.so        LoadModule proxy_express_module modules/mod_proxy_express.so        LoadModule session_module modules/mod_session.so        LoadModule session_cookie_module modules/mod_session_cookie.so        LoadModule slotmem_shm_module modules/mod_slotmem_shm.so        LoadModule lbmethod_byrequests_module modules/mod_lbmethod_byrequests.so        LoadModule lbmethod_bytraffic_module modules/mod_lbmethod_bytraffic.so        LoadModule status_module modules/mod_status.so        LoadModule speling_module modules/mod_speling.so        LoadModule alias_module modules/mod_alias.so        LoadModule rewrite_module modules/mod_rewrite.so

     4.3 修改httpd-vhosts.conf配置

       

 
            ServerAdmin xxxxxxx@xxxx.com                        ServerName localhost                        ServerAlias localhost                        DirectoryIndex index.jsp                        ProxyPass "/" "balancer://cluster/" stickysession=JSESSIONID scolonpathdelim=On                ProxyPassReverse "/" "balancer://cluster/"                        ErrorLog "logs/lbtest-error.log"                        CustomLog "logs/lbtest-access.log" common        

PS: 最后要说明一点:

    如果开启了seliunx和防火墙

    先去关闭seliunx, 然后修改防火墙策略

    不然开启不了组播,从而导致无法session复制

# /sbin/iptables -I INPUT -p udp --dport 45564 -j ACCEPT# /etc/rc.d/init.d/iptables save
#seliunx#setenforce 0#semanage port -a -t http_port_t -p udp 45564

转载于:https://my.oschina.net/rwrwd7/blog/407387

你可能感兴趣的文章
转行程序员深漂的这三年 #3
查看>>
[转载]责任链模式
查看>>
揭秘!双11万亿流量下的分布式缓存系统 Tair
查看>>
[译] iPhone X 网页设计
查看>>
webpack入门及踩坑应对指南
查看>>
对于数据库优化的理解
查看>>
python学习三:列表、元组、字典、集合
查看>>
Netty 框架总结「ChannelHandler 及 EventLoop」
查看>>
Linux 下启动 Tomcat 抛出Can't connect to X11 window server 问题的解决方法
查看>>
Hexo博客NexT主题美化之显示当前浏览进度
查看>>
java版b2b2c社交电商spring cloud分布式微服务(七)springboot开启声明式事务
查看>>
品质生活正式开启,欧普照明&华为智选再创智能家居里程碑式突破
查看>>
【本人秃顶程序员】分库分表怎么才能无限扩容,看这篇文章就对了
查看>>
迁移潮来袭!数十个项目宣布即将停止支持 Python 2
查看>>
Javascrip—装饰器(7)
查看>>
Java 11 已发布,String 还能这样玩!
查看>>
(一)java版电子商务spring cloud分布式微服务b2b2c社交电商-服务的注册与发现(Eureka)...
查看>>
使用DataV制作实时销售数据可视化大屏
查看>>
Hello Juejin
查看>>
AndroidStudio导入或者新建项目一直build
查看>>