一、简介
前面所讲的web服务主要是apache和nginx,apache适合比较重量级的并发,且不适合并发小文件,而nginx则有这一优点,除此之外tomcat在企业级应用中比较广泛,因为此web应用比较安全,漏洞比较少,Tomcat服务器是一个免费的开源的Web应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选,受到当今互联网企业的青睐。
二、Tomcat安装
搭建tomcat运行环境需分两步实现,jdk+tomcat,tomcat的安装方式有两种,系统自带的rpm包安装及其使用官方的二进制包,同时jdk的安装方式也有两种,系统自带的rpm包及官方下载的oracle的jdk的rpm包。
安装方式一如下所示:
1
2
|
yum -y
install
java-1.7.0-openjdk_x86_64 java-1.7.0-openjdk-devel_x86_64
yum -y
install
tomcat tomcat-lib tomcat-webapps tomcat-admin-webapp
|
安装方式二如下所示:
1
2
3
4
5
6
7
8
9
10
|
rpm -ivh jdk-7u79-linux-x64.rpm
tar
xf apache-tomcat-7.0.57.
tar
.gz -C
/usr/local/
ln
-s apache-tomcat-7.0.57 tomat
vi
/etc/profile
.d
/tomcat
.sh
#通过官网下载二进制包及其rpm安装的tomcat和jdk需导入环境变量
CATALINA_BASE=
/usr/local/tomcat
#tomcat导入环境变量
PATH=$CATALINA_BASE
/bin
:$PATH
export
CATALINA_BASE PATH
vi
/etc/profile
.d
/java
.sh
#java导入环境变量,和方式一安装jdk环境变量有很大的区别
JAVA_HOME=
/usr/java/latest
PATH=$JAVA_HOME
/bin
:$PATH
|
三、Tomcat配置文件详解
其配置文件如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
[root@node2 conf]
# ll
total 204
drwxr-xr-x 6 tomcat tomcat 87 Nov 20 19:24 Catalina
-rw------- 1 tomcat tomcat 12257 Nov 3 2014 catalina.policy
#当使用-security选项来启动tomcat实例时,会读取配置文件来实现基于安全的策略运行方式
-rw------- 1 tomcat tomcat 6294 Nov 3 2014 catalina.properties
#catalina相关属性配置
-rw------- 1 tomcat tomcat 1394 Nov 3 2014 context.xml
#每个webapps都可以有专用的配置文件,这些配置文件通过位于webapps应用程序自己的目录下的WEEB-INF目录中,此content.xml为每个webapps提供默认配置
-rw------- 1 tomcat tomcat 3288 Nov 3 2014 logging.properties
#日志系统相关配置
-rw------- 1 tomcat tomcat 8815 Nov 21 20:52 server.xml
#主配置文件
-rw------- 1 tomcat tomcat 1663 Nov 20 19:17 tomcat-
users
.xml
#用户认证和账号和密码文件
-rw------- 1 tomcat tomcat 163385 Nov 3 2014 web.xml
#每个webapps只有在部署后才能够被访问,此文件则用于为各个webapps定义默认的部署方式
[root@node2 conf]
#
#web相关的组织结构
index.jsp
#当前webapps的主页
WEB-INF/:当前webapps的私有资源目录,通常存放当前webapps自用的web.xml
META-INF/:当前webapps的私有资源目录,通常存放webapps自用的content.xml
class/:类文件,当前webapps的私有类
lib/:当前webapps的私有类被打包成jar的格式
webapps的归档格式:
.war:webapp
.jar:ejb的类打包文件
.rar:资源配置类打包文件
.ear:企业及webapps
导入环境变量:
cat
java.sh
JAVA_HOME=
/usr/java/latest
PATH=$JAVA_HOME
/bin
:$PATH
export
JAVA_HOME PATH
cat
tomcat.sh
CATALINA_BASE=
/usr/local/tomcat
PATH=$CATALINA_BASE
/bin
:$PATH
export
CATALINA_BASE PATH
|
四、启动tomcat配置应用
手动添加一个测试应用目录:
1、创建一个webapps特有的目录结构
mkdir -pv myapp/{class,WEB-INF,META-INF,lib}
2、提供一个webapps的主页面(自行解决)
3、启动应用程序,访问默认主页面及其myapp页面
systemctl start tomat
实验图如下:
4、启动管理页面工具编辑tomcat-user.xml配置文件,添加如下配置重启服务。
1
2
3
|
<role rolename=
"manager-gui"
/>
<role rolename=
"admin-gui"
/>
<user username=
"tomcat"
password=
"tomcat"
roles=
"manager-gui,admin-gui"
/>
|
五、实战配置LNMT/LAMT、LNAMT实现动静分离
LNMT实现说明:只需配置nginx的server标签,在标签中添加proxy_pass http://ip:8080即可向后端主机反代。
基于LAMT实现方式有两种,一种基于http,另一种基于ajp,如下配置:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
1、第一种方式的配置机制,使用虚拟主机
<VirtualHost *:80>
ServerName web.alren.com
ProxyRequests Off
ProxyVia On
ProxyPreserveHost On
<Proxy *>
Require all granted
<
/Proxy
>
ProxyPass / http:
//node2
.alren.com:8080/
proxyPassReverse / http:
//node2
.alren.com:8080/
<Location />
Require all granted
<
/Location
>
<
/VirtualHost
>
2、使用ajp机制,使用虚拟主机
<VirtualHost *:80>
ServerName web.alren.com
ProxyRequests Off
ProxyVia On
ProxyPreserveHost On
<Proxy *>
Require all granted
<
/Proxy
>
ProxyPass / ajp:
//node2
.alren.com:8009/
proxyPassReverse / ajp:
//node2
.alren.com:8009/
<Location />
Require all granted
<
/Location
>
<
/VirtualHost
>
|
当配置成功后访问主页,模拟前端代理宕机,则原有的代理将不会反代至其页面,报错为请求不存在,无法访问页面。
LNAMT实现方式则通过nginx做前端调度,将用户的请求反代至后端的主机,其实现方式非常简单,只需在nginx上配置upstream组即可,在server标签中调用即可,结合正则表达式模式匹配可实现动静分离。另起一台服务器其配置简单化代码如下所示:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
http {
.....
upstream tcsrvs {
server 10.1.10.65:8080;
server 10.1.10.66:8080;
}
.....
}
server {
......
location ~* \.(jsp|
do
)$ {
proxy_pass http:
//tcsrvs
;
}
......
}
|
总结:tomcat的配置比起apache/ngnix略微复杂一点点,但了解过前面所学的web知识再来配置tomcat,可以说是游刃有余,与此同时,可采用http做前端调度,其实现效果不亚于nginx,其可实现会话粘性等,此内容将在以后的文章中介绍。
本文转自chengong1013 51CTO博客,原文链接:http://blog.51cto.com/purify/1875977,如需转载请自行联系原作者