centos7 部署tomcat

tomcat服务介绍
LNMP Linux nginx --> php --> mysql 处理PC端 — server端 处理PC端
LNMT nginx代理 tomcat --> JVM --> mysql 处理移动端 — server端 tomcat 处理移动端
官方资料:http://tomcat.apache.org/
tomcat
官方下载链接:https://tomcat.apache.org/download-80.cgi

tomcat服务名词解释
JVM – Java Virtual Machine(Java虚拟机)
jre – Java Runtime Environment (JVM)
jdk – Java Development kit jre(JVN) + java 组件或工具包

tomcat部署
JVM部署(jdk)
官方下载链接:https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html

第一个历程JDK安装
创建存放数据包的目录和上传数据包

[root@test ~]# mkdir /server/tools -p
[root@test ~]# cd /server/tools/
[root@test tools]# rz -E
rz waiting to receive.
[root@test tools]# rz -E
rz waiting to receive.
[root@test tools]# ll
total 185908
-rw-r--r-- 1 root root   9128610 Mar 24 22:55 apache-tomcat-8.0.27.tar.gz
-rw-r--r-- 1 root root 181238643 Mar 24 23:03 jdk-8u60-linux-x64.tar.gz
[root@test tools]# 

第二个历程:解压软件包并移动压缩后的数据并给解压后的数据包创建软连接

[root@test tools]# 
[root@test tools]# mkdir /application -p
[root@test tools]# tar xf  apache-tomcat-8.0.27.tar.gz   -C /application/
[root@test tools]# tar xf  jdk-8u60-linux-x64.tar.gz   -C /application/
[root@test tools]# cd /application/
[root@test application]# ll
total 0
drwxr-xr-x 9 root root 160 Mar 25 08:07 apache-tomcat-8.0.27
drwxr-xr-x 8   10  143 255 Aug  4  2015 jdk1.8.0_60

[root@test application]# ln -s /application/jdk1.8.0_60/ /application/jdk
[root@test application]# ln -s /application/apache-tomcat-8.0.27/ /application/tomcat
[root@test application]# ll
total 0
drwxr-xr-x 9 root root 160 Mar 25 08:07 apache-tomcat-8.0.27
lrwxrwxrwx 1 root root  25 Mar 25 08:08 jdk -> /application/jdk1.8.0_60/
drwxr-xr-x 8   10  143 255 Aug  4  2015 jdk1.8.0_60
lrwxrwxrwx 1 root root  34 Mar 25 08:08 tomcat -> /application/apache-tomcat-8.0.27/
[root@test application]# 

第三个历程:编写环境变量并重新读取环境变量

[root@test application]# vim /etc/profile
[root@test application]# tail -n 5 /etc/profile

export JAVA_HOME=/application/jdk
export TOMCAT_HOME=/application/tomcat
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$TOMCAT_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar
[root@test application]# secure /etc/profile
bash: secure: command not found
[root@test application]# source  /etc/profile
[root@test application]# 

这是配置环境变量的简单方法,’'可以使$符号不被识别。

cat >>/etc/profile<<'EOF'
export JAVA_HOME=/application/jdk
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar
EOF
	source /etc/profile
配置环境变量解释说明:

export JAVA_HOME=/application/jdk
<-- 定义jdk软件程序目录
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
<-- 定义jdk命令存在于环境变量中,可以直接使用
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar
<-- 定义java程序运行所需的库文件环境变量(classpath)

第四个历程:查看Java版本号确认tomcat是否安装成功

[root@test application]# java -version
java version "1.8.0_60"
Java(TM) SE Runtime Environment (build 1.8.0_60-b27)
Java HotSpot(TM) 64-Bit Server VM (build 25.60-b23, mixed mode)
[root@test application]# 

第五个历程:修改tomcat文件的属主属组为root用户并启动服务

[root@test application]# chown -R  root.root /application/
[root@test application]# cd /application/
[root@test application]# ll
total 0
drwxr-xr-x 9 root root 160 Mar 25 08:07 apache-tomcat-8.0.27
lrwxrwxrwx 1 root root  25 Mar 25 08:08 jdk -> /application/jdk1.8.0_60/
drwxr-xr-x 8 root root 255 Aug  4  2015 jdk1.8.0_60
lrwxrwxrwx 1 root root  34 Mar 25 08:08 tomcat -> /application/apache-tomcat-8.0.27/
[root@test application]# 
[root@test bin]# pwd
/application/tomcat/bin
[root@test bin]# startup.sh 
[root@test bin]# netstat  -ntpl|grep 8080
tcp6       0      0 :::8080                 :::*                    LISTEN      7303/java           

第六个历程:查看tomcat日志文件(这个日志文件是最全的)

[root@test bin]# tail -f /application/tomcat/logs/catalina.out 
25-Mar-2020 08:13:46.297 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory /application/apache-tomcat-8.0.27/webapps/docs has finished in 30 ms
25-Mar-2020 08:13:46.297 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory /application/apache-tomcat-8.0.27/webapps/examples
25-Mar-2020 08:13:46.984 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory /application/apache-tomcat-8.0.27/webapps/examples has finished in 687 ms
25-Mar-2020 08:13:46.984 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory /application/apache-tomcat-8.0.27/webapps/host-manager
25-Mar-2020 08:13:47.039 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory /application/apache-tomcat-8.0.27/webapps/host-manager has finished in 55 ms
25-Mar-2020 08:13:47.040 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory /application/apache-tomcat-8.0.27/webapps/manager
25-Mar-2020 08:13:47.069 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory /application/apache-tomcat-8.0.27/webapps/manager has finished in 29 ms
25-Mar-2020 08:13:47.089 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"]
25-Mar-2020 08:13:47.117 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["ajp-nio-8009"]
25-Mar-2020 08:13:47.139 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in 1605 ms

确认8080端口

[root@test bin]# netstat -ntpl|grep 8080
tcp6       0      0 :::8080                 :::*                    LISTEN      7303/java           

查看进程名

[root@test bin]# ps -ef |grep  java
root       7303      1  2 08:13 pts/0    00:00:04 /application/jdk/bin/java -Djava.util.logging.config.file=/application/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs=/application/tomcat/endorsed -classpath /application/tomcat/bin/bootstrap.jar:/application/tomcat/bin/tomcat-juli.jar -Dcatalina.base=/application/tomcat -Dcatalina.home=/application/tomcat -Djava.io.tmpdir=/application/tomcat/temp org.apache.catalina.startup.Bootstrap start
root       7332   7191  0 08:16 pts/0    00:00:00 grep --color=auto java
[root@test bin]# 

如果不过滤的话现象是这样的

[root@test bin]# netstat  -ntpl
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      6867/sshd           
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      6952/master         
tcp6       0      0 :::8009                 :::*                    LISTEN      7303/java           
tcp6       0      0 :::8080                 :::*                    LISTEN      7303/java           
tcp6       0      0 :::22                   :::*                    LISTEN      6867/sshd           
tcp6       0      0 ::1:25                  :::*                    LISTEN      6952/master         
tcp6       0      0 127.0.0.1:8005          :::*                    LISTEN      7303/java           
[root@test bin]# 

会有三个有关Java的进程

此时页面登录试一下
http://10.0.0.41:8080/
在这里插入图片描述

第七个历程:修改后台管理用户名和密码

[root@test conf]# pwd
/application/apache-tomcat-8.0.27/conf
[root@test conf]# vim tomcat-users.xml

 32 <!--
 33   <role rolename="tomcat"/>
 34   <role rolename="role1"/>
 35   <user username="tomcat" password="tomcat" roles="tomcat"/>
 36   <user username="both" password="tomcat" roles="tomcat,role1"/>
 37   <user username="role1" password="tomcat" roles="role1"/>
 38 -->
从这里开始就是自己手动添加的
 39 <role rolename="manager-gui"/>
 40 <role rolename="admin-gui"/>
 41 <user username="tomcat" password="tomcat" roles="manager-gui,admin-gui"/>
从这里开始就是自己手动添加的
 42 </tomcat-users>


配置完成后重启服务(其实tomcat服务没有重启功能,只能是手动关闭和打开)
在这里插入图片描述

密码和用户都时tomcat

补充:8005端口的作用
shutdown.sh ---->catalina.sh----->向8005端口发送了SHUTDOWN信号------>结束tomcat服务进程

[root@test yum.repos.d]# netstat  -ntpl |grep 8080
tcp6       0      0 :::8080                 :::*                    LISTEN      7592/java           
[root@test yum.repos.d]# echo "SHUTDOWN"|nc 127.0.0.1 8005
[root@test yum.repos.d]# netstat  -ntpl |grep 8080
[root@test yum.repos.d]# 

nc命令的作用:

nc 127.0.0.1 8005    #192.168.1.11连接端口

具体见linux命令手册
http://linux.51yip.com/search/nc

tomcat配置文件解析

   22 <Server port="8005" shutdown="SHUTDOWN">     接收关闭服务信号端口
   
   69 <Connector port="8080" protocol="HTTP/1.1"   接收用户访问HTTP请求端口信息
   70                connectionTimeout="20000"     连接超时时间(默认毫秒)    
   71                redirectPort="8443" />        接收用户访问HTTPS请求端口信息
   
   91 <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
                                                   用于与其他http服务建立连接通讯端口信息
   123 <Host name="localhost"  appBase="webapps"   用于定义网站域名信息  站点目录信息
   124  unpackWARs="true" autoDeploy="true">    是否自动部署解压上传代码信息 war包(java代码)
   
   135 <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"  生成响应tomcat日志
   136  prefix="localhost_access_log" suffix=".txt"                                   生成日志文件信息
   137  pattern="%h %l %u %t &quot;%r&quot; %s %b" 

部署jpress网站
第一个历程:获取代码包
将代码包放入到站点目录下,不要放到ROOT目录下。

[root@test yum.repos.d]# mkdir /html/blog -p
[root@test yum.repos.d]# cd /html/blog/
[root@test blog]# ll
total 0
[root@test blog]# rz -E
rz waiting to receive.
[root@test blog]# ll
total 20312
-rw-r--r-- 1 root root 20797013 Mar 25 03:13 jpress-web-newest.war
[root@test blog]# 

不需要自己手动解压,只需要将配置文件中的站点目录改为/html/blog目录即可

[root@test conf]# pwd
/application/tomcat/conf
[root@test conf]# vim server.xml 
123       <Host name="localhost"  appBase="/html/blog/"

修改完配置文件后需要重启服务才能识别新的配置
重启tomcat服务
(这里重启服务时会报一些其他的信息,可以不必理会)

第二个历程:将数据库信息部署一下

MariaDB [(none)]> create database lsy;
Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> use lsy
Database changed
MariaDB [lsy]> show tables;
Empty set (0.00 sec)

MariaDB [lsy]> grant all on lsy.* to 'lsy'@'172.16.1.%' identified by '000000';
Query OK, 0 rows affected (0.00 sec)

MariaDB [lsy]> 
MariaDB [lsy]> 
MariaDB [lsy]> exit
Bye

第三个历程:这个网站的初始化界面有点特殊,不能直接跳转,需要自己输入
在这里插入图片描述
注意:出现这个页面后不会自己跳转,
需要你重启tomcat服务后再手动输入信息进行跳转

在这里插入图片描述

[root@test bin]# shutdown.sh 
Using CATALINA_BASE:   /application/tomcat
Using CATALINA_HOME:   /application/tomcat
Using CATALINA_TMPDIR: /application/tomcat/temp
Using JRE_HOME:        /application/jdk
Using CLASSPATH:       /application/tomcat/bin/bootstrap.jar:/application/tomcat/bin/tomcat-juli.jar
[root@test bin]# startup.sh 
Using CATALINA_BASE:   /application/tomcat
Using CATALINA_HOME:   /application/tomcat
Using CATALINA_TMPDIR: /application/tomcat/temp
Using JRE_HOME:        /application/jdk
Using CLASSPATH:       /application/tomcat/bin/bootstrap.jar:/application/tomcat/bin/tomcat-juli.jar
Tomcat started.
[root@test bin]# 

在这里插入图片描述

部署完成

tomcat服务JVM优化(内存)

  vim /application/tomcat/bin/catalina.sh   
 99行: JAVA_OPTS="-Xms256m -Xmx512m -Xss1024k -XX:PermSize=128m -XX:MaxPermSize=256m"
   -Xms 为jvm启动时分配的初始内存     
   -Xmx 为jvm运行分配的最大内存
   -Xss 每个线程退栈的大小,一般情况下256k足够。影响此进程中并发线程数量
   -XX:PermSize     JVN初始分配非堆栈内存
   -XX:MaxPermSize  JVM最大允许分配的非退栈内存   

查看修改的内存有没有变化
(需要将站点目录修改回来,不能再是咱们刚才修改的自定的目录)
默认站点目录

[root@test tomcat]# pwd
/application/tomcat/webapps

[root@test conf]# pwd
/application/tomcat/conf
[root@test conf]# vim server.xml 
123       <Host name="localhost"  appBase="webapps"

重启服务

[root@test bin]# shutdown.sh 
Using CATALINA_BASE:   /application/tomcat
Using CATALINA_HOME:   /application/tomcat
Using CATALINA_TMPDIR: /application/tomcat/temp
Using JRE_HOME:        /application/jdk
Using CLASSPATH:       /application/tomcat/bin/bootstrap.jar:/application/tomcat/bin/tomcat-juli.jar
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option PermSize=128m; support was removed in 8.0
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=256m; support was removed in 8.0
[root@test bin]# startup.sh 
Using CATALINA_BASE:   /application/tomcat
Using CATALINA_HOME:   /application/tomcat
Using CATALINA_TMPDIR: /application/tomcat/temp
Using JRE_HOME:        /application/jdk
Using CLASSPATH:       /application/tomcat/bin/bootstrap.jar:/application/tomcat/bin/tomcat-juli.jar
Tomcat started.
[root@test bin]# 

这里也会报一些其他的信息,不必理会

在这里插入图片描述
在这里插入图片描述

补充tomcat基础知识

tomcat程序服务端口作用:
	8080:用户浏览器客户端进行访问页面端口信息
	8005:接收关闭服务信号信息
	      shutdown.sh --> catalina.sh -->8005端口发送了SHUTDOWN信号 ---> 结束tomcat服务进程
	8009:用于和其他HTTP服务建立通讯

tomcat服务目录结构
   bin  --- tomcat程序命令信息
   . startup.sh    --- 启动程序脚本文件
   · shutdown.sh   --- 关闭程序脚本文件
   · catalina.sh   --- 被启动和关闭脚本所调用 优化JVM信息
   
   conf --- tomcat程序配置文件
   · server.xml        --- tomcat程序主配置文件
   · tomcat-users.xml  --- 用于在后台管理查看tomcat信息
   ===========================================================================
   补充后台用户文件如何编写:
   vim tomcat_users.xml 
   <role rolename="manager-gui"/>
   <role rolename="admin-gui"/>
   <user username="tomcat" password="tomcat" roles="manager-gui,admin-gui"/>
   ===========================================================================
   
   lib  --- tomcat程序所需库文件信息
   
   logs --- tomcat程序日志文件信息
   catalina.2020-03-25.log
   说明:tomcat程序运行情况日志信息,此文件中的信息也会输出到catalina.out,应用向console输出日志不会出现在此文件
         简单来说就是tomcat启动或停止运行日志文件 
   catalina.out
   说明:程序标准输出和错误输出的信息都会记录到此文件中,并且包含向console输出的日志信息
         简单来说就是tomcat程序运行过程中最相信日志文件,默认此文件不会自动切割
   ===========================================================
   此文件日志切割方式:		 
   01. logroate进行日志切割
   02. crond进行日志切割
   03. log4j进行日志切割
   ===========================================================
   localhost.2020-03-25.log
   说明:程序应用初始化未处理的异常信息会记录到此文件中,包含tomcat运行状态信息

   localhost_access_log.2020-03-25.txt
   说明:访问tomca程序日志文件  类似 nginx access日志文件
   
   manager.2020-03-25.log
   说明:管理tomcat服务日志信息

   webapps  --- tomcat程序默认站点目录

编写配置文件信息

   # vim server.xml
   22 <Server port="8005" shutdown="SHUTDOWN">     接收关闭服务信号端口
   
   69 <Connector port="8080" protocol="HTTP/1.1"   接收用户访问HTTP请求端口信息
   70                connectionTimeout="20000"     连接超时时间(默认毫秒)    
   71                redirectPort="8443" />        接收用户访问HTTPS请求端口信息
   
   91 <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
                                                   用于与其他http服务建立连接通讯端口信息
   123 <Host name="localhost"  appBase="/html/blog"   用于定义网站域名信息  站点目录信息
   124  unpackWARs="true" autoDeploy="true">	   是否自动部署解压上传代码信息 war包(java代码)

   135 <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"  生成响应tomcat日志
   136  prefix="localhost_access_log" suffix=".txt"                                   生成日志文件信息
   137  pattern="%h %l %u %t &quot;%r&quot; %s %b" />  

如果网站搭建完毕无法连接数据库,需要修改代码文件
jpress-web-newest/WEB-INF/classes/db.properties == wordpress wp-config.php

  #Auto create by JPress
   #Wed Mar 25 15:26:48 CST 2020
   db_name=blog
   db_host_port=3306
   db_tablePrefix=jpress_
   db_host=172.16.1.51
   db_password=oldboy123
   db_user=blog

tomcat服务JVM优化 (内存)

  vim /application/tomcat/bin/catalina.sh   
   JAVA_OPTS="-Xms256m -Xmx512m -Xss1024k -XX:PermSize=128m -XX:MaxPermSize=256m"
   -Xms 为jvm启动时分配的初始内存     
   -Xmx 为jvm运行分配的最大内存
   -Xss 每个线程退栈的大小,一般情况下256k足够。影响此进程中并发线程数量
   -XX:PermSize     JVN初始分配非堆栈内存
   -XX:MaxPermSize  JVM最大允许分配的非退栈内存 
发布了198 篇原创文章 · 获赞 17 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/weixin_42506599/article/details/105103188