目录
[Tomcat 服务部署](#Tomcat 服务部署)
[1.关闭防火墙,将安装 Tomcat 所需软件包上传到虚拟机](#1.关闭防火墙,将安装 Tomcat 所需软件包上传到虚拟机)
[Tomcat 服务管理](#Tomcat 服务管理)
[systemd 管理控制](#systemd 管理控制)
[supervisor 管理控制](#supervisor 管理控制)
[Tomcat 虚拟主机配置](#Tomcat 虚拟主机配置)
[1.创建 sunny101 和 sunny102 项目目录和文件](#1.创建 sunny101 和 sunny102 项目目录和文件)
[2.修改 Tomcat 主配置文件 server.xml](#2.修改 Tomcat 主配置文件 server.xml)
[2.配置 tomcat 环境变量](#2.配置 tomcat 环境变量)
[3.修改 tomcat2 中的 server.xml 文件,要求各 tomcat 实例配置不能有重复的端口号](#3.修改 tomcat2 中的 server.xml 文件,要求各 tomcat 实例配置不能有重复的端口号)
[4.修改各 tomcat 实例中的 startup.sh 和 shutdown.sh 文件,添加 tomcat 环境变量](#4.修改各 tomcat 实例中的 startup.sh 和 shutdown.sh 文件,添加 tomcat 环境变量)
[5.启动各 tomcat 中的 /bin/startup.sh](#5.启动各 tomcat 中的 /bin/startup.sh)
Tomcat 是 Java 语言开发的,Tomcat 服务器是一个免费的开放源代码的 Web 应用服务器,是 Apache 软件基金会的 Jakarta 项目中的一个核心项目。
Tomcat 属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试 JSP 程序的首选。一般来说,Tomcat 虽然和 Apache 或者 Nginx 这些 Web 服务器一样,具有处理 HTML 页面的功能,然而由于其处理静态 HTML 的能力远不及 Apache 或者 Nginx,所以 Tomcat 通常是作为一个 Servlet 和 JSP 容器,单独运行在后端。
Tomcat 由一系列的组件构成,其中核心的组件有三个:Web 容器,Servlet 容器和JSP 容器
Tomcat 服务部署
在部署 Tomcat 之前必须安装好 jdk,因为 jdk 是 Tomcat 运行的必要环境。
1.关闭防火墙,将安装 Tomcat 所需软件包上传到虚拟机
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
apache-tomcat-8.5.16.tar.gz,jdk-8u391-linux-x64.rpm
2.安装JDK
图形化界面自带(可以删除后重新安装)
rpm -ivh jdk-8u391-linux-x64.rpm
java -version
3.设置JDK环境变量
vim /etc/profile.d/java.sh
export JAVA_HOME=/usr/java/jdk1.8.0-x64
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:JAVA_HOME/lib:JRE_HOME/lib
export PATH=JAVA_HOME/bin:JRE_HOME/bin:$PATH
source /etc/profile.d/java.sh
可用 which java 查找Java的安装目录
java环境测试
vim Hello.java
javac Hello.java
java Hello
4.安装启动Tomcat
tar -xf apache-tomcat-8.5.16.tar.gz
mv apache-tomcat-8.5.16 /usr/local/tomcat
5.启动tomcat
后台启动
方法一
/usr/local/tomcat/bin/startup.sh
方法二
/usr/local/tomcat/bin/catalina.sh start
前台启动
/usr/local/tomcat/bin/catalina.sh run
网页访问Tomcat的默认主页 http://192.168.110.60:8080
6.优化tomcat启动速度
第一次启动tomcat可能会发现 Tomcat 启动很慢,默认情况下可能会需要几十秒,可以修改jdk参数进行改。
vim /usr/java/jdk1.8.0-x64/jre/lib/security/java.security
重启
/usr/local/tomcat/bin/shutdown.sh
/usr/local/tomcat/bin/startup.sh
Tomcat 服务管理
systemd 管理控制
vim /usr/lib/systemd/system/tomcat.service
[Unit]
Description=tomcat server
Wants=network-online.target
After=network.target
[Service]
Type=forking
Environment="JAVA_HOME=/usr/java/jdk1.8.0-x64"
ExecStart=/usr/local/tomcat/bin/startup.sh
ExecStop=/usr/local/tomcat/bin/shutdown.sh
Restart=on-failure
[Install]
WantedBy=multi-user.target
可以通过systemctl命令管理tomcat
supervisor 管理控制
supervisor是Python开发的c/s服务,是Linux系统下的进程管理工具。可以监听、启动、停止、重启一个或多个进程。用supervisor管理的进程,当一个进程意外被杀死,supervisor监听到进程死后,会自动将它重启,很方便的做到进程的自动恢复的功能,不在需要自己写脚本来控制。
1.使用yum安装supervisor
yum install -y supervisor
2.修改配置文件
使用yum安装的supervisor会在/etc/会生成一个supervisor.conf文件及一个supervisor.d文件目录
vi /etc/supervisord.conf
也可使用sed -i 's/;chmod=0700/chmod=0766/g' /etc/supervisord.conf修改
也可使用
sed -i '$a [include] \files = /etc/supervisord.d/*.conf' /etc/supervisord.conf
3.supervisor管理服务有两种设置方式
方法一
在 /etc/supervisord.conf 文件中添加
[program:tomcat]
command=/usr/local/tomcat/bin/catalina.sh run
autostart=true
startsecs=10
autorestart=true
startretries=3
user=root
priority=999
redirect_stderr=true
stdout_logfile_maxbytes=200MB
stdout_logfile_backups=20
; stdout
stdout_logfile=/var/log/supervisor/logs/catalina.out
stopasgroup=false
killasgroup=false
environment=JAVA_HOME=/usr/java/jdk1.8.0-x64
方法二
在etc/supervisord.d/目录下创建
vim /etc/supervisord.d/nginx.conf
[program:nginx]
command=/usr/local/nginx/sbin/nginx -g 'daemon off;'
stdout_logfile=/var/log/supervisor/nginx_run.log
stderr_logfile=/var/log/supervisor/nginx_error.log
autostart=true
startsecs=10
autorestart=true
startretries=1
user=root
priority=998
stdout_logfile_maxbytes=200MB
stdout_logfile_backups=20
stopasgroup=true
killasgroup=true
redirect_stderr=true
4.创建存放日志的目录(重要,一定要建立)
mkdir -p /var/log/supervisor/logs/
5.启动supervisord
systemctl start supervisord
systemctl enable supervisord
或者
supervisord -c /etc/supervisor.conf
supervisor常用命令(注意要在服务关闭后再使用supervisord开启管理)
supervisorctl是supervisord的命令行工具
查看所有进程的状态supervisorctl status
停止进程:supervisorctl stop <name>
启动进程:supervisorctl start <name>
重启进程:supervisorctl restart <name>
配置文件修改后可以使用该命令加载新的配置:supervisorctl update
重新启动配置中的所有程序:supervisorctl reload
nginx状态:supervisorctl status nginx
停止nginx:supervisorctl stop nginx
启动nginx:supervisorctl start nginx
重启nginx:supervisorctl restart nginx
重载nginx:supervisorctl reload nginx
测试supervisord的自动恢复的功能
Tomcat 虚拟主机配置
很多时候公司会有多个项目需要运行,一般不会是在一台服务器上运行多个 Tomcat 服务,这样会消耗太多的系统资源。此时, 就需要使用到 Tomcat 虚拟主机。
例如现在新增两个域名 www.sunny101.com 和 www.sunny.com, 希望通过这两个域名访问到不同的项目内容。
1.创建 sunny101 和 sunny102 项目目录和文件
mkdir /usr/local/tomcat/webapps/sunny101
mkdir /usr/local/tomcat/webapps/sunny102
echo "This is sunny101 page!" > /usr/local/tomcat/webapps/sunny101/index.jsp
echo "This is sunny102 page!" > /usr/local/tomcat/webapps/sunny102/index.jsp
2.修改 Tomcat 主配置文件 server.xml
vim /usr/local/tomcat/conf/server.xml
<Host name="www.sunny101.com" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
<Context docBase="/usr/local/tomcat/webapps/sunny101" path="" reloadable="true" />
</Host>
<Host name="www.sunny102.com" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
<Context docBase="/usr/local/tomcat/webapps/sunny102" path="" reloadable="true" />
重启
/usr/local/tomcat/bin/shutdown.sh
/usr/local/tomcat/bin/startup.sh
3.客户端浏览器访问验证
修改hosts文件
网页访问
Tomcat多实例部署
1.创建tomcat1,2
tar -xf apache-tomcat-8.5.16.tar.gz
mv apache-tomcat-9.0.16 /usr/local/tomcat/tomcat1
cp -a /usr/local/tomcat/tomcat1 /usr/local/tomcat/tomcat2
2.配置 tomcat 环境变量
vim /etc/profile.d/tomcat.sh
#tomcat1
export CATALINA_HOME1=/usr/local/tomcat/tomcat1
export CATALINA_BASE1=/usr/local/tomcat/tomcat1
export TOMCAT_HOME1=/usr/local/tomcat/tomcat1
#tomcat2
export CATALINA_HOME2=/usr/local/tomcat/tomcat2
export CATALINA_BASE2=/usr/local/tomcat/tomcat2
export TOMCAT_HOME2=/usr/local/tomcat/tomcat2
source /etc/profile.d/tomcat.sh
3.修改 tomcat2 中的 server.xml 文件,要求各 tomcat 实例配置不能有重复的端口号
vim /usr/local/tomcat/tomcat2/conf/server.xml
4.修改各 tomcat 实例中的 startup.sh 和 shutdown.sh 文件,添加 tomcat 环境变量
export CATALINA_BASE=$CATALINA_BASE1
export CATALINA_HOME=$CATALINA_HOME1
export TOMCAT_HOME=$TOMCAT_HOME1
vim /usr/local/tomcat/tomcat1/bin/shutdown.sh
vim /usr/local/tomcat/tomcat2/bin/startup.sh
vim /usr/local/tomcat/tomcat2/bin/shutdown.sh
5.启动各 tomcat 中的 /bin/startup.sh
/usr/local/tomcat/tomcat1/bin/startup.sh
/usr/local/tomcat/tomcat2/bin/startup.sh
netstat -natp | grep java