Chinaunix
标题:
apache+tomcat负载均衡
[打印本页]
作者:
听老歌
时间:
2011-11-27 17:28
标题:
apache+tomcat负载均衡
apache+tomcat负载均衡
3台服务器centos5.3 32bit
192.168.1.244(apache) 192.168.1.242(tomcat) 192.168.1.247(tomcat),每台tomcat分别安装建立2个普通用户每个用户跑一个tomcat实例。
安装环境说明:
apache服务器这里安装了 LAMP+tomcat+jdk+tomcat-connectors-1.2.30-src.tar.gz(native)
tomcat服务器只需要安装jdk和tomcat
yum -y install httpd httpd-devel php mysql mysql-server php-mysql zlib gd freetype libpng jpeg freetype-devel libpng-devel php-mysql mysql-php php-
pdo openssl gcc glib auto make mod_auth_mysql php-mcrypt php-gd php-xml php-mbstring php-ldap php-pear php-xmlrpc mysql-connector-odbc mysql-devel
libdbi-dbd-mysql mod_ssl mod_perl mod_auth_mysql php-gd php-xml php-mbstring php-ldap php-pear php-xmlrpc mysql-connector-odbc mysql-devel libdbi-
dbd-mysql
再安装jdk-6u22-linux-i586.bin
mkdir /usr/local/java
./jdk-6u22-linux-i586.bin
配置环境:
vi /etc/profile
JAVA_HOME=/usr/local/java/jdk1.6.0_22
JRE_HOME=$JAVA_HOME/jre
PATH=$JAVA_HOME/bin:JRE_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/jt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export JAVA_HOME JRE_HOME PATH CLASSPATH
保存退出
再source /etc/profile 使环境配置生效。
[root@localhost ~]# java -version
java version "1.6.0_22"
Java(TM) SE Runtime Environment (build 1.6.0_22-b04)
Java HotSpot(TM) Client VM (build 17.1-b03, mixed mode, sharing)
开始配置apache
编辑httpd.conf:
LoadModule jk_module modules/mod_jk.so
JkWorkersFile conf/workers.properties
JkLogFile logs/mod_jk.log
# Set the jk log level [debug/error/info]
JkLogLevel error
# Select the log format
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
# JkOptions indicate to send SSL KEY SIZE,
#JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
#JkOptions +ForwardKeySize +ForwardURICompatUnparsed -ForwardDirectories
JkOptions +ForwardKeySize +ForwardURIEscaped -ForwardDirectories
#JkOptions +ForwardKeySize +ForwardURICompat +ForwardURIEscaped +ForwardDirectories +ForwardLocalAddress
# JkRequestLogFormat set the request format
JkRequestLogFormat "%w %V %T"
DirectoryIndex index.jsp index.php index.html index.html.var
AddType application/x-httpd-php .php
[root@localhost conf]# pwd
/etc/httpd/conf
[root@localhost conf]# cat workers.properties
worker.list=loadbalancer
# Define the first node...
#####1#####
worker.tomcat1.port=8002
worker.tomcat1.host=192.168.1.242
worker.tomcat1.type=ajp13
worker.tomcat1.lbfactor=1
worker.tomcat1.redirect=tomcat1
worker.tomcat1.local_worker=1
worker.tomcat1.cachesize=100
#####2######
worker.tomcat2.port=7009
worker.tomcat2.host=192.168.1.242
worker.tomcat2.type=ajp13
worker.tomcat2.lbfactor=1
worker.tomcat2.redirect=tomcat2
worker.tomcat2.local_worker=1
worker.tomcat2.cachesize=100
#####3#######
worker.tomcat3.port=8002
worker.tomcat3.host=192.168.1.247
worker.tomcat3.type=ajp13
worker.tomcat3.lbfactor=1
worker.tomcat3.redirect=tomcat3
worker.tomcat3.local_worker=1
worker.tomcat3.cachesize=100
######4###########
worker.tomcat4.port=7009
worker.tomcat4.host=192.168.1.247
worker.tomcat4.type=ajp13
worker.tomcat4.lbfactor=1
worker.tomcat4.redirect=tomcat4
worker.tomcat4.local_worker=1
worker.tomcat4.cachesize=100
# Now we define the load-balancing behaviour
worker.loadbalancer.type=lb
worker.loadbalancer.balance_workers=tomcat1,tomcat2,tomcat3,tomcat4
worker.loadbalancer.sticky_session=1
[root@localhost conf]#
[root@localhost conf]# ls
httpd.conf magic workers.properties
[root@localhost conf]# cd ..
[root@localhost httpd]# cd conf.d/
[root@localhost conf.d]# ls
auth_mysql.conf jk_mount.conf perl.conf proxy_ajp.conf ssl.conf
httpd-vhosts.conf jk_unmount.conf php.conf README welcome.conf
[root@localhost conf.d]# cat jk_mount.conf
JkMount /WEB-INF/* loadbalancer
JkMount /*.jsp loadbalancer
[root@localhost conf.d]# cat jk_unmount.conf
JkUnMount /images/* loadbalancer
JkUnMount /css/* loadbalancer
JkUnMount /js/* loadbalancer
JkUnMount /fckeditor/* loadbalancer
JkUnMount /asweb/* loadbalancer
JkUnMount /*.cgi loadbalancer
JkUnMount /*.html loadbalancer
[root@localhost conf.d]# cat proxy_ajp.conf
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
#
# When loaded, the mod_proxy_ajp module adds support for
# proxying to an AJP/1.3 backend server (such as Tomcat).
# To proxy to an AJP backend, use the "ajp://" URI scheme;
# Tomcat is configured to listen on port 8009 for AJP requests
# by default.
#
#
# Uncomment the following lines to serve the ROOT webapp
# under the /tomcat/ location, and the jsp-examples webapp
# under the /examples/ location.
#
#ProxyPass /tomcat/ ajp://localhost:8009/
#ProxyPass /examples/ ajp://localhost:8009/jsp-examples/
[root@localhost conf.d]# cat httpd-vhosts.conf
<VirtualHost *:80>
DocumentRoot /home/web1
ServerName www.dong.com
Include conf.d/jk_mount.conf
Include conf.d/jk_unmount.conf
<Directory "/home/web1">
Options -Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
[root@localhost conf.d]#
apache
复制代码
上的配置完成了。
下面就是tomcat服务器上的配置了。
开始tomcat的配置
jdk的安装配置上面已经讲过了。
下载apache-tomcat-7.0.16 分别复制2份,分别2个普通用户登录运行起来。
监听端口不同。
默认的配置即可使用。
也可以在server.xml里加
<Host name="www.dong.com" debug="0" appBase="webapps/ROOT"
unpackWARs="true" autoDeploy="true">
<Logger className="org.apache.catalina.logger.FileLogger"
directory="logs" prefix="localhost_log." suffix=".txt"
timestamp="true"/>
<Context path="" docBase="/home/java1/web" debug="0"
reloadable="true" crossContext="true">
</Context>
</Host>
复制代码
详情见附件。
apache处理除了jsp之外的类型文件,jsp的类型文件交给后端的tomcat来处理,轮询机制。
还需要在程序的web.xml里面</web-app>前面加入以下这句话
<distributable/>
session同步到这里设置完毕
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2