您的位置:首页 > 运维架构 > Tomcat

ubuntu14.04下配置apache2+tomcat8负载均衡

2015-12-09 14:55 567 查看

更新源:

apt-get update

安装apache2:

apt-get install apache2

安装libapache2-mod-jk:

apt-get install libapache2-mod-jk

备份一下缺省的worker.properties

cp /etc/libapache2-mod-jk/worker.properties /etc/libapache2-mod-jk/worker.properties.bak

然后编辑worker.properties,修改配置为:

vi /etc/libapache2-mod-jk/worker.properties

#========worklist========

worker.list=tomcatlb

#========tomcat1(clusterserver1:8080)========

worker.tomcat1.port=8009

worker.tomcat1.host=clusterserver1

worker.tomcat1.type=ajp13

worker.tomcat1.lbfactor=1

#========tomcat2(clusterserver2:8080)========

worker.tomcat2.port=8009

worker.tomcat2.host=clusterserver2

worker.tomcat2.type=ajp13

worker.tomcat2.lbfactor=1

#========svnerver load balance controller========

worker.tomcatlb.type=lb

worker.tomcatlb.balanced_workers=tomcat1,tomcat2

worker.tomcatlb.sticky_session=1

注意:

1、clusterserver1和clusterserver2为主机名,也可以直接填写服务器IP。使用主机名更为灵活,但还需要分别改写主从服务器的/etc/hosts文件,例如:

vi /etc/hosts

192.168.1.11 clusterserver1

192.168.1.12 clusterserver2

2、tomcat主从服务也可以在同一服务器上,对于多核的服务器,起多个tomcat实例,并且做负载均衡,也可以提高性能,并防止单个tomcat崩溃导致业务中断。

如果tomcat注从服务都运行于同一服务器,则需要分别修改主从tomcat/conf/server.xml,使其管理端口和ajp端口指向不同数字,避免端口冲突。

配置tomcat支持ajp

安装jdk和tomat

1、安装tomcat需要JDK1.6以上,JDK可以通过apt-get install下载安装,也可以将以前安装的版本如/usr/lib/jvm/java-7-openjdk-amd64目录拷贝到Ubuntu相同目录,做软链接。
ln -s /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java /etc/alternatives/java
ln -s /etc/alternatives/java /usr/bin/java
除此之外,还需要配置环境变量$JAVA_HOME和$PATH,在当前用户的~/.bashrc或/etc/profile增加下面配置,重新登录即可生效。
JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64

PATH=$PATH:$JAVA_HOME/bin

export JAVA_HOME PATH

2、安装tomcat可以访问 http://tomcat.apache.org 下载6.0/7.0/8.0的 Core 版 .zip或.tar.gz文件都可以。下载完成之后直接将.zip或.tar.gz解压到任一目录即可。
$CATALINA_HOME为tomcat的安装路径,只为说明相对文件路径,不必加入环境变量。

配置tomcat

1、修改$CATALINA_HOME/conf/server.xml,将<Engine name="Catalina">中jvmRoute的值修改为libapache2-mod-jk中worker的名字,如tomcat1或tomcat2:
<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1">

2、除了<Engine>外,根据需要,还可以修改
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" URIEncoding="UTF-8" maxPostSize="33554432" maxThreads="500" />

a) maxPostSize指的是上传文件的最大字节数(33554432=32MB)
b) maxThreads指的是最大线程数,增加此数值可适当提升tomcat并发处理能力。

c) URIEncoding是URI中文字的编码格式,如“student/query?name=张三&sex=男”,参数为中文或其他非英文数字的字符编码。这一点与在<Connector protocal="HTTP/1.1">中增加URIEncoding属性是相同的。需要提醒的是,一旦只使用apache+ajp的方式访问tomcat(即不需要直接通过8080端口访问tomcat),下面的配置就可以屏蔽了。
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8" />

3、根据实际情况修改tomcat的占用内存,提升性能:
修改$CATALINA_HOME/bin/catalina.sh,在文件头部适当位置加入JAVA_OPTS设置,如:

# -----------------------------------------------------------------------------
JAVA_OPTS="$JAVA_OPTS -Xms1024m -Xmx1024m -XX:PermSize=64m -XX:MaxPermSize=512m"

# OS specific support. $var _must_ be set to either true or false.

4、重新启动tomcat
cd $CATALINA_HOME/bin
./shutdown.sh
./startup.sh

配置apache的站点支持负载均衡:

vi /etc/apache2/sites-enabled/000-default.conf
增加一行
JkMount /yourwebapp/* tomcatlb

重新启动apache2
service apache2 restart

解决Apache 2.4 Permission denied的问题

配置了新的 virtual host 后,由于DocumentRoot指向了其他路径,可能会导致访问的时候出现Permission denied的问题。
出现这个错误,有可能有两个原因。
原因一、在给新站点设置目录访问权限时使用了Apache 2.2的指令。
需要把
<Directory />

Options Indexes FollowSymLinks MultiViews

AllowOverride None

Order allow,deny

Allow from all

</Directory>

改为
<Directory />

Options Indexes FollowSymLinks MultiViews

AllowOverride None

Require all granted

</Directory>

参考:http://www.zyxware.com/articles/4550/solved-forbidden-you-dont-have-permission-to-access-on-this-server
原因二、在查询error.log的时候,发现存在以下日志:
(13)Permission denied: [client 183.156.104.53:53825] AH00035: access to / denied (filesystem path '/home/root/websites') because search permissions are missing on a component of the path
这是因为 /home/root 目录的权限必须是755,而本人是做的软链接。ln -s /root /home/root 这样是不行的。
参考:http://askubuntu.com/questions/451922/apache-access-denied-because-search-permissions-are-missing
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: