(十二)反向代理负载均衡(如Apache+JK2+Tomcat组合)

2023-11-03 04:48

本文主要是介绍(十二)反向代理负载均衡(如Apache+JK2+Tomcat组合),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

参考:http://blog.csdn.net/chaijunkun/article/details/6987443

 

apache做前端,tomcat做业务处理,通过mod_jk连接做负载平衡。  

 

apache web服务器与tomcat容器的整合

 

预期目标:

使用apache服务器作为前置机,使用jk_mod作为连接器,派发任务

在linux和window环境中分别部署一套结构相同的应用,作为负载均衡服务器

在windows环境中访问应用,能够看到不同worker处理后的不同结果

 

 

1.检查环境,安装gcc,g++

 
其中,gcc, g++, java命令必须正确输出,表示系统当前能够编译运行c,c++,java语言!

 

如果提示command not found,则安装对应的功能:

首先,挂载光驱,从光驱中查询需要的服务

mount /dev/cdrom /mnt/cdr  挂载光驱
cd /mnt/cdr  进入挂载点

#find -name *gcc* 具体查询此处省略,只需按需要查找到对应的rpm的全称即可

安装rpm
#GCC
rpm -ivh ./Server/kernel-headers-2.6.18-92.el5.x86_64.rpm
rpm -ivh ./Server/compat-glibc-headers-2.3.4-2.26.x86_64.rpm
rpm -ivh ./Server/compat-glibc-2.3.4-2.26.x86_64.rpm
rpm -ivh ./Server/compat-libstdc++-33-3.2.3-61.x86_64.rpm
rpm -ivh ./Server/compat-libf2c-34-3.4.6-4.x86_64.rpm
rpm -ivh ./Server/compat-libgcc-296-2.96-138.i386.rpm
rpm -ivh ./Server/cpp-4.1.2-42.el5.x86_64.rpm
rpm -ivh ./Server/glibc-headers-2.5-24.x86_64.rpm
rpm -ivh ./Server/glibc-devel-2.5-24.x86_64.rpm
rpm -ivh ./Server/libgomp-4.1.2-42.el5.x86_64.rpm
rpm -ivh ./Server/libstdc++-devel-4.1.2-42.el5.x86_64.rpm
rpm -ivh ./Server/gcc-4.1.2-42.el5.x86_64.rpm
rpm -ivh ./Server/compat-gcc-34-3.4.6-4.x86_64.rpm
rpm -ivh ./Server/compat-gcc-34-c++-3.4.6-4.x86_64.rpm

 

#G++
rpm -ivh ./Server/libstdc++-4.1.2-42.el5.x86_64.rpm
rpm -ivh ./Server/gcc-c++-4.1.2-42.el5.x86_64.rpm

 

 安装完成之后,再次执行gcc, g++命令看是否能正确输出相关信息。

 

2.下载apache server 和 apache-tomcat-connector并安装

下载Apache HTTP Server     http://httpd.apache.org/download.cgi 

【版本: httpd-2.2.25.tar.gz】


 

下载Tomcat Connectors JK   http://tomcat.apache.org/download-connectors.cgi

【版本:tomcat-connectors-1.2.37-src.tar.gz】


 

将上述2个gz包都上传到linux系统上,解压到当前目录

tar -xzvf /home/hqh/httpd-2.2.25.tar.gz

tar -xzvf /home/hqh/tomcat-connectors-1.2.37-src.tar

安装HTTP SERVER(apache 服务器)

进入httpd安装目录

[root@localhost hqh]# cd /home/hqh/httpd-2.2.25

执行配置脚本
[root@localhost httpd-2.2.25]# ./configure --enable-so --enable-mods-shared=most --with-mpm=worker

编译
[root@localhost httpd-2.2.25]# make
安装apache 服务器

[root@localhost httpd-2.2.25]# sudo make install
到此,apache 服务器安装完毕!

安装完成后,会新增加/usr/local/apache2目录,该目录用来存放apache服务的相关信息


 

 

测试安装后的apache服务:

cd /usr/local/apache2/bin

./apachectl start

window下访问http://192.168.136.128/


 测试成功后,开始安装apache与tomcat整合必备的连接器。

(如果访问失败,则先在linux环境适应wget访问试试,如果正常,则检查linux防火墙设置)

 

获取jk_mod.so

[root@localhost bin]# cd /home/hqh/tomcat-connectors-1.2.37-src

[root@localhost tomcat-connectors-1.2.37-src]# cd native

配置
[root@localhost native]# ./configure --with-apxs=/usr/local/apache2/bin/apxs
编译

 [root@localhost native]# make
进入apache-2.0目录,查看mod_jk.so文件



 

将mod_jk.so拷贝至apache服务器的modules目录中

cp /home/hqh/tomcat-connectors-1.2.37-src/native/apache-2.0/mod_jk.so /usr/local/apache2/modules

3.配置worker

 tomcat配置文件(server.xml)解读

接收ajp协议请求的配置,专门用于接收如apache web服务器发送过来的请求

【默认使用的8080端口,是处理http请求的】

    编辑httpd主配置文件,加入mod_jk组件

    vi /usr/local/apache2/conf/httpd.conf

#add jk connector
LoadModule jk_module modules/mod_jk.so<IfModule jk_module>JkWorkersFile conf/workers.propertiesJkMountFile conf/uriworkermap.propertiesJkLogFile logs/mod_jk.logJkLogLevel warn
</IfModule>

   同样,在/usr/local/apache2/conf/目录下,新建workers.properties和uriworkermap.properties文件

 workers.properties

#
# workers.properties
## list the workers by name
worker.list=loadBalanceServers, jk_watcher# localhost server 1
# linux系统上部署的服务(tomcat webapps下建了一个demo,下面有一个index.jsp)
# ------------------------
worker.s1.port=8009
worker.s1.host=localhost
worker.s1.type=ajp13
worker.s1.lbfactor=10
worker.s1.cachesize=5# remote server 2
# windows系统上部署的服务(tomcat webapps下建了一个demo,下面有一个index.jsp)
# ------------------------
worker.s2.port=8009
worker.s2.host=192.168.136.1
worker.s2.type=ajp13
worker.s2.lbfactor=10
worker.s2.cachesize=5worker.loadBalanceServers.type=lb
worker.loadBalanceServers.balanced_workers=s1,s2
worker.loadBalanceServers.sticky_session=false
worker.jk_watcher.type=status
# worker.jk_watcher.read_only=True
worker.jk_watcher.mount=/admin/jk
worker.retries=3

uriworkermap.properties 配置哪些资源由apache来处理,哪些由负载均衡服务器处理

#
#uriworkermap.properties
##define all requests will be submitted to load balance servers
#if the condition is satisfied, the filter will validate the next statement until it's not.
#notice the order of the following statements
# ! 意思为"否"
# !/*.gif=loadBalanceServers,表示所有gif图片都不交给tomcat处理,由apache来处理
/*=loadBalanceServers
/jkstatus=jk_watcher
!/*.gif=loadBalanceServers
!/*.jpg=loadBalanceServers
!/*.tif=loadBalanceServers
!/*.png=loadBalanceServers

 

到此,一个简单的负载均衡实验基本完成!

 

===========================================================================

 

验证:

先启动tomcat,再启动apache!

开启linux环境的tomcat服务器,windows环境的tomcat服务器(启动负载均衡服务器)

开启linux环境的apache 服务器( /usr/local/apache2/bin/apachectl  start)

 

在window环境中,访问http://192.168.136.128/demo,会出现看到不同的效果! 

如果访问失败,关闭window防火墙再试!

第一次访问:



 

第二次访问:

 

 

 

 

 

 

 

 

 

 

这篇关于(十二)反向代理负载均衡(如Apache+JK2+Tomcat组合)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/335691

相关文章

深入理解Apache Kafka(分布式流处理平台)

《深入理解ApacheKafka(分布式流处理平台)》ApacheKafka作为现代分布式系统中的核心中间件,为构建高吞吐量、低延迟的数据管道提供了强大支持,本文将深入探讨Kafka的核心概念、架构... 目录引言一、Apache Kafka概述1.1 什么是Kafka?1.2 Kafka的核心概念二、Ka

Tomcat版本与Java版本的关系及说明

《Tomcat版本与Java版本的关系及说明》:本文主要介绍Tomcat版本与Java版本的关系及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Tomcat版本与Java版本的关系Tomcat历史版本对应的Java版本Tomcat支持哪些版本的pythonJ

tomcat多实例部署的项目实践

《tomcat多实例部署的项目实践》Tomcat多实例是指在一台设备上运行多个Tomcat服务,这些Tomcat相互独立,本文主要介绍了tomcat多实例部署的项目实践,具有一定的参考价值,感兴趣的可... 目录1.创建项目目录,测试文China编程件2js.创建实例的安装目录3.准备实例的配置文件4.编辑实例的

如何将Tomcat容器替换为Jetty容器

《如何将Tomcat容器替换为Jetty容器》:本文主要介绍如何将Tomcat容器替换为Jetty容器问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Tomcat容器替换为Jetty容器修改Maven依赖配置文件调整(可选)重新构建和运行总结Tomcat容器替

SpringCloud之LoadBalancer负载均衡服务调用过程

《SpringCloud之LoadBalancer负载均衡服务调用过程》:本文主要介绍SpringCloud之LoadBalancer负载均衡服务调用过程,具有很好的参考价值,希望对大家有所帮助,... 目录前言一、LoadBalancer是什么?二、使用步骤1、启动consul2、客户端加入依赖3、以服务

SpringCloud负载均衡spring-cloud-starter-loadbalancer解读

《SpringCloud负载均衡spring-cloud-starter-loadbalancer解读》:本文主要介绍SpringCloud负载均衡spring-cloud-starter-loa... 目录简述主要特点使用负载均衡算法1. 轮询负载均衡策略(Round Robin)2. 随机负载均衡策略(

Centos环境下Tomcat虚拟主机配置详细教程

《Centos环境下Tomcat虚拟主机配置详细教程》这篇文章主要讲的是在CentOS系统上,如何一步步配置Tomcat的虚拟主机,内容很简单,从目录准备到配置文件修改,再到重启和测试,手把手带你搞定... 目录1. 准备虚拟主机的目录和内容创建目录添加测试文件2. 修改 Tomcat 的 server.X

Tomcat的下载安装与使用教程

《Tomcat的下载安装与使用教程》本文介绍了Tomcat的下载、安装和使用方法,包括在本机和云服务器上部署Tomcat的过程,以及解决启动失败问题的方法... 目录Tomcat的下载安装与使用Tomcat的下载与安装Tomcat在本机运行使用Tomcat在php云服务器上的使用总结Tomcat的下载安装与

使用Apache POI在Java中实现Excel单元格的合并

《使用ApachePOI在Java中实现Excel单元格的合并》在日常工作中,Excel是一个不可或缺的工具,尤其是在处理大量数据时,本文将介绍如何使用ApachePOI库在Java中实现Excel... 目录工具类介绍工具类代码调用示例依赖配置总结在日常工作中,Excel 是一个不可或缺的工http://

Apache伪静态(Rewrite).htaccess文件详解与配置技巧

《Apache伪静态(Rewrite).htaccess文件详解与配置技巧》Apache伪静态(Rewrite).htaccess是一个纯文本文件,它里面存放着Apache服务器配置相关的指令,主要的... 一、.htAccess的基本作用.htaccess是一个纯文本文件,它里面存放着Apache服务器