一.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://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
原文地址:http://chengyanli.blog.51cto.com/11399167/1790461