搭建Tomcat应用服务器、tomcat虚拟主机及Tomcat多实例部署

一、环境准备

系统版本:CentOS release 6.6 (Final)  x86_64
Tomcat版本:tomcat-8.0.48
JDK版本:jdk-8u25-linux-x64
关闭防火墙
软件包下载地址:
http://tomcat.apache.org/
http://www.oracle.com/technetwork/java/javase/downloads/index.html

二、安装Java环境

[root@tomcat-server ~]#  rpm -ivh jdk-8u25-linux-x64.rpm   #安装jdk
Preparing...                ########################################### [100%]
   1:jdk1.8.0_25            ########################################### [100%]
Unpacking JAR files...
    rt.jar...
    jsse.jar...
    charsets.jar...
    tools.jar...
    localedata.jar...
    jfxrt.jar...
[root@tomcat-server ~]# cat /etc/profile.d/java.sh  #设置java环境变量
export JAVA_HOME=/usr/java/latest
export CLASSPATH=$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$PATH 
[root@tomcat-server ~]# . /etc/profile.d/java.sh
[root@tomcat-server ~]# java -version     #查看java变量是否配置成功
java version "1.8.0_25"
Java(TM) SE Runtime Environment (build 1.8.0_25-b17)
Java HotSpot(TM) 64-Bit Server VM (build 25.25-b02, mixed mode)
[root@tomcat-server ~]# echo $JAVA_HOME
/usr/java/latest
[root@tomcat-server ~]# echo $CLASSPATH
/usr/java/latest/lib/tools.jar
[root@tomcat-server ~]# echo $PATH
/usr/java/latest/bin:/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

 

三、安装tomcat服务器

[root@tomcat-server ~]# tar xf apache-tomcat-8.0.48.tar.gz -C /usr/local/ #解压到安装目录
[root@tomcat-server ~]# cd /usr/local/
[root@tomcat-server local]# ln -sv apache-tomcat-8.0.48 tomcat 
"tomcat" -> "apache-tomcat-8.5.24" 
[root@tomcat-server local]# ll
总用量 44
drwxr-xr-x  9 root root 4096 12月 26 23:21 apache-tomcat-8.0.48
drwxr-xr-x. 2 root root 4096 1月   5 2016 bin
drwxr-xr-x. 5 root root 4096 1月   5 2016 etc
drwxr-xr-x. 2 root root 4096 9月  23 2011 games
drwxr-xr-x. 2 root root 4096 9月  23 2011 include
drwxr-xr-x. 2 root root 4096 9月  23 2011 lib
drwxr-xr-x. 2 root root 4096 9月  23 2011 lib64
drwxr-xr-x. 2 root root 4096 9月  23 2011 libexec
drwxr-xr-x. 2 root root 4096 1月   5 2016 sbin
drwxr-xr-x. 5 root root 4096 1月   5 2016 share
drwxr-xr-x. 2 root root 4096 9月  23 2011 src
lrwxrwxrwx  1 root root   20 12月 26 23:21 tomcat -> apache-tomcat-8.0.48root@tomcat-server ~]# cat /etc/profile.d/tomcat.sh  #配置tomcat环境变量
export CATALINA_HOME=/usr/local/tomcat
export PATH=$CATALINA_HOME/bin:$PATH 
[root@tomcat-server local]# . /etc/profile.d/tomcat.sh
[root@tomcat-server local]#  echo $CATALINA_HOME
/usr/local/tomcat
[root@tomcat-server local]# echo $PATH
/usr/local/tomcat/bin:/bin:/usr/java/latest/bin:/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

启动tomcat

[root@tomcat-server tomcat]# catalina.sh start #或者直接使用/usr/local/tomcat/bin/startup.sh脚本启动
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr/java/latest
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.
[root@tomcat-server tomcat]# netstat -tnlp #查看端口是否启动
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name   
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      985/sshd            
tcp        0      0 :::22                       :::*                        LISTEN      985/sshd            
tcp        0      0 ::ffff:127.0.0.1:8005       :::*                        LISTEN      11150/java          
tcp        0      0 :::8009                     :::*                        LISTEN      11150/java          
tcp        0      0 :::8080                     :::*                        LISTEN      11150/java  

访问一下链接,默认端口为8080

 

 在右上角有这样三个按钮: 

Server Status:用于监控服务器状态
Manager App:可以部署、监控Web应用
Host Manager:Tomcat主机管理

当我们尝试登陆任何一个管理界面,提示没有权限,需要去配置

根据提示,需要配置用户和权限

vim /usr/local/tomcat/conf/tomcat-users.xml #编辑用户和密码及权限配置目录
<role rolename="manager-gui"/>
<role rolename="admin-gui"/>
<user username="tomcat" password="PANpan520" roles="manager-gui,admin-gui"/>

需要注意的是,从Tomcat 7开始,Host manager应用的角色由单个的admin角色转为admin-gui和admin-script两个角色,你需要根据你的访问需求给用户分配不同的角色:

admin-gui: 允许访问HTML GUI,可以避免CSRF攻击
admin-script: 允许访问文本接

从Tomcat 7开始, 管理平台的角色由单个的manager角色变更为下面的4个角色,你需要根据你的访问需求给用户分配不同的角色:

manager-gui: 允许访问HTML GUI和状态页
manager-script: 允许访问文本接口和状态页
manager-jmx: 允许访问JMX代理和状态页
manager-status: 仅允许访问状态页

重启服务,使配置生效

[root@tomcat-server tomcat]# catalina.sh stop #关闭tomcat
[root@tomcat-server tomcat]# catalina.sh configtest #测试配置是否有语法错误
[root@tomcat-server tomcat]# catalina.sh start

 如果配置没有问题,应该可以正常登陆访问了,如下图

 

 

好啦,现在就可以方便的配置Tomcat服务器,并管理运行的Web应用,如发布、启动、停止或删除操作,还可以查看Web应用状态了

 

四、配置tomcat的虚拟主机

创建虚拟主机的目录

[root@tomcat-server ~]# mkdir -pv /data/webapps
mkdir: 已创建目录 "/data/webapps"
[root@tomcat-server ~]# mkdir -pv /data/logs
mkdir: 已创建目录 "/data/logs"
[root@tomcat-server ~]# echo "99+1=<%=99+1%>" > /data/webappstest.jsp #创建一个测试页面

编辑server.xml,添加一个新的Host

<Host name="www.tomcat1.com" appBase="/data/webapps" unpackWARs="true" autoDeploy="false" >
  <Context path="" docBase="/data/webapps" reloadable="true" />
  <Valve className="org.apache.catalina.valves.AccessLogValve" directory="/data/logs"
       prefix="tomcat1_access_log" suffix=".txt"
       pattern="%h %l %u %t &quot;%r&quot; %s %b" />
</Host>

重启服务

[root@tomcat-server tomcat]# catalina.sh stop #关闭tomcat
[root@tomcat-server tomcat]# catalina.sh configtest #测试配置是否有语法错误
[root@tomcat-server tomcat]# catalina.sh start

客户端做好域名解析,访问测试页面

没有问题,配置成功

关闭tomcat服务,避免和后面的使用产生冲突

[root@tomcat-server ~]# catalina.sh stop

虚拟目录的优点:

1.虚拟目录的名称通常要比物理目录的名称易记,因此更便于用户访问。
2.使用虚拟目录可以提高安全性,因为客户端并不知道文件在服务器上的实际物理位置,所以无法使用该信息来修改服务器中的目标文件。
3.使用虚拟目录可以更方便地移动网站中的目录,只需更改虚拟目录物理位置之间的映射,无需更改目录的URL。
4.使用虚拟目录可以发布多个目录下的内容,并可以单独控制每个虚拟目录的访问权限。
5.使用虚拟目录可以均衡Web服务器的负载,因为网站中资源来自于多个不同的服务器,从而避免单一服务器负载过重,响应缓慢。

 

五、配置tomcat多实例

配置多实例目录

在tomcat安装目录下创建www.tomcat2.com、www.tomcat3.com,并且将conf、logs、webapp、temp、work目录拷贝到这两个目录,然后tomcat安装目录只需要留下bin、www/tomcat2.com、www.tomcat3.com、lib这4个目录即可

[root@tomcat-server local]# cd /usr/local/tomcat/
[root@tomcat-server tomcat]# mkdir www.tomcat2.com #创建两个实例目录
[root@tomcat-server tomcat]# mkdir www.tomcat3.com
[root@tomcat-server tomcat]# cp -r conf logs webapps temp work www.tomcat2.com/
[root@tomcat-server tomcat]# mv  conf logs webapps temp work www.tomcat3.com/
[root@tomcat-server tomcat]# tree -d -L 2
.
├── bin
├── lib
├── www.tomcat2.com
│   ├── conf
│   ├── logs
│   ├── temp
│   ├── webapps
│   └── work
└── www.tomcat3.com
├── conf
├── logs
├── temp
├── webapps
└── work

14 directories

配置站点server.xml

www.tomcat2.com

[root@tomcat-server ~]# vim /usr/local/tomcat/www.tomcat2.com/conf/server.xml
<Server port="8002" shutdown="SHUTDOWN"> #修改管理端口
<Connector port="8082" protocol="HTTP/1.1" #修改http访问端口 <Connector port="8042" protocol="AJP/1.3" redirectPort="8443" /> #修改ajp访问端口 <Host name="www.tomcat2.com" appBase="/data/tomcat2" unpackWARs="true" autoDeploy="false" > #编辑一个host主机 <Context path="" docBase="" reloadable="true" /> <Valve className="org.apache.catalina.valves.AccessLogValve" directory="/data/logs" prefix="tomcat2_access_log" suffix=".txt" pattern="%h %l %u %t &quot;%r&quot; %s %b" /> </Host>

www.tomcat3.com

[root@tomcat-server ~]# vim /usr/local/tomcat/www.tomcat3.com/conf/server.xml
<Server port="8003" shutdown="SHUTDOWN"> #修改管理端口
<Connector port="8083" protocol="HTTP/1.1" #修改http访问端口
<Connector port="8043" protocol="AJP/1.3" redirectPort="8443" /> #修改ajp访问端口
<Host name="www.tomcat3.com" appBase="/data/tomcat3" unpackWARs="true" autoDeploy="false" > #编辑一个host主机
   <Context path="" docBase="" reloadable="true" />
   <Valve className="org.apache.catalina.valves.AccessLogValve" directory="/data/logs"
       prefix="tomcat3_access_log" suffix=".txt"
       pattern="%h %l %u %t &quot;%r&quot; %s %b" />
</Host>

编写tomcat实例启动脚本

#!/bin/sh
 # description: 启动tomcat多实例.
 . /etc/init.d/functions
 RETVAL=$?
 # tomcat实例目录
 export CATALINA_BASE="$PWD"
 # tomcat安装目录
 export CATALINA_HOME="/usr/local/tomcat"
 # 可选
 export JVM_OPTIONS="-Xms128m -Xmx128m -XX:PermSize=64m -XX:MaxPermSize=64m"
 case "$1" in
 start)
 if [ -f $CATALINA_HOME/bin/startup.sh ];then
 echo $"Start Tomcat"
 $CATALINA_HOME/bin/startup.sh
 fi
 ;;
 stop)
 if [ -f $CATALINA_HOME/bin/shutdown.sh ];then
 echo $"Stop Tomcat"
 $CATALINA_HOME/bin/shutdown.sh
 fi
 ;;
 *)
 echo $"Usage: $0 {start|stop}"
 exit 1
 ;;
 esac
 exit $RETVAL
View Code

创建实例目录和测试页面

[root@tomcat-server ~]# mkdir /data/tomcat2
[root@tomcat-server ~]# mkdir /data/tomcat3
[root@tomcat-server ~]# echo "2+2=<%=2+2%>" > /data/tomcat2/test.jsp
[root@tomcat-server ~]# echo "3+3=<%=3+3%>" > /data/tomcat3/test.jsp
[root@tomcat-server ~]# chmod +x tomcat.sh
[root@tomcat-server ~]# cp tomcat.sh /usr/local/tomcat/www.tomcat2.com/
[root@tomcat-server ~]# cp tomcat.sh /usr/local/tomcat/www.tomcat3.com/

启动服务,一定要cd到tomcat.sh的当前目录下执行才可以

tomcat2:

[root@tomcat-server www.tomcat2.com]# ./tomcat.sh start
Start Tomcat
Using CATALINA_BASE:   /usr/local/tomcat/www.tomcat2.com
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/www.tomcat2.com/temp
Using JRE_HOME:        /usr/java/latest
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.

tomcat3:

[root@tomcat-server www.tomcat3.com]# ./tomcat.sh start
Start Tomcat
Using CATALINA_BASE:   /usr/local/tomcat/www.tomcat3.com
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/www.tomcat3.com/temp
Using JRE_HOME:        /usr/java/latest
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.

客户端配置好域名解析,测试环境使用hosts文件即可

tomcat2:

tomcat3:

能够正常访问,配置完成!

 

 

 

posted @ 2017-12-29 00:03  百衲本  阅读(1500)  评论(0编辑  收藏  举报
cnblogs_post_body { color: black; font: 0.875em/1.5em "微软雅黑" , "PTSans" , "Arial" ,sans-serif; font-size: 15px; } cnblogs_post_body h1 { text-align:center; background: #333366; border-radius: 6px 6px 6px 6px; box-shadow: 0 0 0 1px #5F5A4B, 1px 1px 6px 1px rgba(10, 10, 0, 0.5); color: #FFFFFF; font-family: "微软雅黑" , "宋体" , "黑体" ,Arial; font-size: 23px; font-weight: bold; height: 25px; line-height: 25px; margin: 18px 0 !important; padding: 8px 0 5px 5px; text-shadow: 2px 2px 3px #222222; } cnblogs_post_body h2 { text-align:center; background: #006699; border-radius: 6px 6px 6px 6px; box-shadow: 0 0 0 1px #5F5A4B, 1px 1px 6px 1px rgba(10, 10, 0, 0.5); color: #FFFFFF; font-family: "微软雅黑" , "宋体" , "黑体" ,Arial; font-size: 20px; font-weight: bold; height: 25px; line-height: 25px; margin: 18px 0 !important; padding: 8px 0 5px 5px; text-shadow: 2px 2px 3px #222222; } cnblogs_post_body h3 { background: #2B6695; border-radius: 6px 6px 6px 6px; box-shadow: 0 0 0 1px #5F5A4B, 1px 1px 6px 1px rgba(10, 10, 0, 0.5); color: #FFFFFF; font-family: "微软雅黑" , "宋体" , "黑体" ,Arial; font-size: 18px; font-weight: bold; height: 25px; line-height: 25px; margin: 18px 0 !important; padding: 8px 0 5px 5px; text-shadow: 2px 2px 3px #222222; } 回到顶部 博客侧边栏 回到顶部 页首代码 回到顶部 页脚代码