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

tomcat的配置及负载均衡

2016-06-17 22:17 531 查看
一.Tomcat简介

1.tomcat
tomcat是由Apache组织开发的应用(java)服务器,是一个servlet(jsp翻译成servlet)容器。其可认为是Apache的扩展,但可以独立于Apache运行。

2.tomcat中关键的目录
/bin:包含了启动、停止和其他的脚本。在UNIX系统中,使用*.sh脚本;
/conf:配置文件和一些文档定义规则。最重要的文件就是server.xml,它是tomcat容器的主要配置文件。
/logs:这是默认的日志目录,其中控制台打印出的内容,都会保存在catalina.log中
/webapps:web应用程序,其中ROOT中存放tomcat的首页,当输入URL:loalhost:8080时,会默认访问该目录下的index.html

二.Tomcat的配置

系统环境:rhel6 x32 selinux and iptables disabled 主机角色: 主机1 172.25.46.1 tomcat nginx 主机2 172.25.46.2 负载均衡器 主机3 172.25.46.3 负载均衡器 软件下载:http://www.nginx.org http://tomcat.apache.org http://www.oracle.com/technetwork/java/javase/archive-139210.html

jdk安装

# ls
jdk-6u32-linux-x64.bin
# sh jdk-6u20-linux-i586.bin

运行后,生成目录jdk1.6.0_20
# mv jdk1.6.0_20 /usr/local/lnmp
# ln -s jdk1.6.0_20/ java

配置环境变量
# vim /etc/profile
export JAVA_HOME=/usr/local/lnmp/java
exportJAVAPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$PATH:$JAVA_HOME/bin
# source /etc/profile

测试jdk是否安装成功
# vim test.java
public class test{
public static void main(String args[])
{System.out.println("hello world");
}}
# javac test.java
# java test
hello world

tomcat安装
# ls
apache-tomcat-7.0.37.tar.gz
# cd /usr/local/lnmp/
# tar zxf /root/apache-tomcat-7.0.37.tar.gz
# ln -s apache-tomcat-7.0.37 tomcat
# cd tomcat

启动tomcat
# bin/startup.sh
# netstat -antlp
tcp 0 0 :::8080 :::* LISTEN 5650/java

此时可用浏览器测试:172.25.46.1:8080可看到tomcat界面,如图:




jsp,调用系统时间
# cd webapps/ROOT
# vim test.jsp
the time is <%=new java.util.Date()%>

再次用浏览器访问:172.25.46.1:8080/test.jsp,如图:




注意:以上访问均需要添加8080端口,若想访问不添加端口,可在nginx.conf文件中设置

编辑nignx.conf文件,设置所有jsp页面由tomcat处理,访问不添加8080端口
# vim /usr/local/lnmp/nginx/conf/nginx.conf
101 location ~ \.jsp${
102 proxy_passhttp://172.25.46.1:8080; 103 }

# nginx -t
# nginx -s reload

此时再次访问可不添加端口:172.25.46.1/test.jsp,如图:




三.tomcat负载均衡

主机1:172.25.46.1

复制java及tomcat至负载均衡器
# cd /usr/local/lnmp/
# scp -r java/ tomcat/ 172.25.46.2:/usr/local/lnmp
# scp -r java/ tomcat/ 172.25.46.3:/usr/local/lnmp

编辑文件nginx.conf,实现负载均衡
# vim /usr/local/lnmp/nginx/conf/nginx.conf

17 http {
......
23
24 upstream tomcat{
25
26 server172.25.46.2:8080; ##负载均衡
27 server172.25.46.3:8080;
28 }
29
.......
110
111 location ~ \.jsp$ { ##所有jsp页面交给Tomcat处理
112 proxy_pass http://tomcat;
113 }
}

# nginx -t
# nginx -s reload

主机2:172.25.46.2
主机3:172.25.46.3

配置环境变量
# /etc/init.d/httpd start
# vim /etc/profile
export JAVA_HOME=/usr/local/lnmp/java
export JAVAPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$PATH:$JAVA_HOME/bin
# source /etc/profile

启动tomcat
# cd /usr/local/lnmp/tomcat
# bin/startup.sh

测试程序
# cd webapps/ROOT/
# vim test.jsp
the time is <%=new java.util.Date()%>

此时可用浏览器访问:172.25.46.2/test.jsp,如图:




访问172.25.46.3/test.jsp,如图:



访问172.25.46.1/test.jsp,如图:




问题集锦:
(1)此实验中,我使用的平台是linux32位操作系统,因此安装jdk时选择适合的jdk脚本。第一次由于下载了64位的jdk脚本,显示无法读取库文件。后来下载32位jdk脚本,才能够运行成功。因此实验时一定要注意实验环境。
(2)实验中在编辑nignx.conf文件时,upstream应该位于http{}中并且在server{}之外,我在实验时由于将upstream写在了server{}中,使用nginx -t检测语法时报错。后来根据错误提示进行更改,能够正确加载此文件。

(3)在此实验中,负载均衡使用的是轮询的机制,由于负载均衡器只有2台,效果不是很明显,当负载均衡器较多时效果会更好。



本文出自 “真水无香” 博客,请务必保留此出处http://chengyanli.blog.51cto.com/11399167/1790461
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: