Tomcat:https://tomcat.apache.org/

概述:

Tomcat是由Apache等公司及个人开发而成,是一个开源的web应用服务器(主要应用于企业后端服务器);Tomcat属于轻量级应用服务器,在中小型系统和并发访问量中等情况下被普遍使用,是开发和调试JSP(全称Java Server Pages)程序的首选。

Tomcat应用
Tomcat和Nginx等服务器都具有处理静态页面的功能(但Tomcat不擅长静态页面处理),一台tomcat默认并发是200。

企业环境下我们一般建议使用Nginx和Tomcat配合,Nginx处理静态,Tomcat处理动态程序。

Tomcat环境部署

  • 1.JDK( Java 语言的软件开发工具包)

JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。

JDK下载链接:(自行下载需要的版本,jdk向下兼容性较弱)www.oracle.com/technetwork/java/javase/downloads/index.html

  • 2.Tomcat & JDK安装(注意版本一致性)

关闭防火墙(企业环境自行设置防火墙)
上传/下载jdk1.8到服务器。安装jdk

[root@tomcat1 ~]# wget https://mirrors.bfsu.edu.cn/apache/tomcat/tomcat-8/v8.5.66/bin/
[root@tomcat1 ~]# tar -xf apache-tomcat-8.5.66.tar.gz -C /usr/local/
[root@tomcat1 ~]# mv /usr/local/apache-tomcat-8.5.66  /usr/local/tomcat/apache-tomcat-8.5.66
  • 3.设置环境变量:
[root@tomcat1 ~]# tomcatpath='export TOMCAT_HOME=/usr/local/tomcat/'
[root@tomcat1 ~]# echo $tomcatpath > /etc/profile.d/tomcat.sh
[root@tomcat1 ~]# source /etc/profile.d/tomcat.sh

查看tomcat是否安装成功:

[root@tomcat1 ~]# /usr/local/tomcat/bin/version.sh

Tomcat目录介绍

  • tomcat主目录介绍
[root@java-tomcat1 ~]# cd /usr/local/tomcat
[root@java-tomcat1 tomcat]# yum install -y tree
[root@java-tomcat1 tomcat]# tree

.
├── bin     #存放tomcat的管理脚本
├── BUILDING.txt
├── conf    #tomcat的配置文件
├── CONTRIBUTING.md
├── lib      #web应用调用的jar包存放路径
├── LICENSE
├── logs     #tomcat日志存放目录,catalin.out日志为只要输出日志
├── NOTICE
├── README.md
├── RELEASE-NOTES
├── RUNNING.txt
├── temp     #存放临时文件
├── webapps  #默认网站发布目录
└── work     #存放编译生产的.java与.class文件
  • webapps目录介绍
[root@java-tomcat1 tomcat]# cd webapps/
[root@java-tomcat1 webapps]# tree
.
├── docs  #tomcat的帮助文档
├── examples  #web应用实例
├── host-manager  #主机管理
├── manager    #管理
└── ROOT    #默认站点根目录
  • Tomcat配置文件目录介绍(conf)
[root@java-tomcat1 webapps]# cd ../conf/
[root@java-tomcat1 conf]# tree
.
├── Catalina
├── catalina.policy
├── catalina.properties
├── context.xml
├── logging.properties
├── logs
├── server.xml           # tomcat 主配置文件
├── server.xml.bak
├── server.xml.bak2
├── tomcat-users.xml    # tomcat 管理用户配置文件
├── tomcat-users.xsd
└── web.xml

Tomcat的命令和管理

/usr/local/tomcat/bin/startup.sh  #启动
/usr/local/tomcat/bin/shutdown.sh #关闭
[root@tomcat1 bin]# netstat -lntp  |grep java 

8005负责监听关闭Tomcat的请求
8080客户端访问端口
8009与其他http服务通信接口,在 conf/server.xml
文件中修改配置

 <Connector protocol="AJP/1.3"
            address="::1"
            port="8009"
            redirectPort="8443" />

启动完成浏览器进行访问:ip/:8080,查看页面

[root@java-tomcat1 bin]# tail -f /usr/local/tomcat/logs/catalina.out  #查看日志

server.xml配置文件(conf目录下)

<?xml version='1.0' encoding='utf-8'?>
<!--
<Server>
    port指定Tomcat监听shutdown命令端口
    shutdown指定终止Tomcat服务器运行。
-->
<Server port="8005" shutdown="SHUTDOWN">
  <Listener className="org.apache.catalina.startup.VersionLoggerListener" />
  <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
  <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
  <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
  <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />
  <GlobalNamingResources>
    <Resource name="UserDatabase" auth="Container"
              type="org.apache.catalina.UserDatabase"
              description="User database that can be updated and saved"
              factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
              pathname="conf/tomcat-users.xml" />
  </GlobalNamingResources>
  <Service name="Catalina">
   
    <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />
    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
    <Engine name="Catalina" defaultHost="localhost">
      <Realm className="org.apache.catalina.realm.LockOutRealm">
        <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
               resourceName="UserDatabase"/>
      </Realm>
    
      <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">
        <Context path="" docBase="" debug=""/>
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log" suffix=".txt"
               pattern="%h %l %u %t &quot;%r&quot; %s %b" />
      </Host>
    </Engine>
  </Service>
</Server>

Connector主要参数

port:指定端口号,并监听来自客户端的请求。 protocol:连接器使用的协议,支持HTTP和AJP。【AJP(Apache Jserv
Protocol)专用于tomcat与apache建立通信】
redirectPort:指定服务器正在处理http请求时收到了一个SSL传输请求后重定向的端口号
maxThreads:接收最大请求的并发数connectionTimeout 指定超时的时间数(以毫秒为单位)

connectionTimeout :指定超时的时间数(以毫秒为单位)

host参数

host:一个虚拟主机

name:主机名

appBase:应用程序基本目录,即存放应用程序的目录,也可以写绝对路径。

unpackWARs:true代表tomcat会自动将WAR文件解压

autoDeploy:在tomcat启动时是否自动部署

WEB站点部署

上线代码:
1、直接将程序目录放在webapps目录下面;
2、将程序打包成war包,上传到webapps目录下面。

  • 使用war包部署web站点
  • Jenkins部署

下载jenkins的war包

[root@java-tomcat1 ~]# wget https://ftp-nyc.osuosl.org/pub/jenkins/war/  #多版本自行选择
[root@java-tomcat1 ~]# ls
jenkins.war                
[root@java-tomcat1 ~]# cd /user/local/tomcat   #进入tomcat目录
[root@java-tomcat1 tomcat]# cp -r webapps/ /opt/    #发布网站目录备份
[root@java-tomcat1 tomcat]# rm -rf webapps/*    #清空发布网站里面的内容
[root@java-tomcat1 tomcat]# cp /root/jenkins.war webapps/ 
[root@java-tomcat1 tomcat]# /usr/local/tomcat/bin/startup.sh 

浏览器访问:IP/jenkins 查看Jenkins管理页面

  • 安装配置数据库
[root@java-tomcat1 ~]# wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
[root@java-tomcat1 ~]# rpm -ivh mysql80-community-release-el7-3.noarch.rpm
[root@java-tomcat1 ~]# cd /etc/yum.repos.d/
[root@java-tomcat1 yum.repos.d]# vim mysql-community.repo

将MySQL8.0enabled改为0(关闭),MySQL5.7改为1(开启)

安装

[root@java-tomcat1 yum.repos.d]# yum -y install mysql-server mysql
[root@java-tomcat1 yum.repos.d]# cd
[root@java-tomcat1 ~]# systemctl start mysqld
[root@java-tomcat1 ~]# systemctl enable mysqld

查找密码并修改密码

[root@java-tomcat1 ~]# grep pass /var/log/mysqld.log   #过滤查找密码
[root@java-tomcat1 ~]# mysqladmin -u root -p'旧密码' password '新密码' #修改密码

配置数据库

[root@java-tomcat1 ~]# mysql -u root -p'密码'
mysql> create database jspgou #创建库

部署线上商城这里我使用的是开源的jspgou

wget http://down.chinaz.com/download.asp?id=36280&dp=1&fid=16&f=yes   #上传/下载jspgou商城的代码
  • jspgou商城上线
[root@java-tomcat1 ~]# unzip jspgouV6.1-ROOT.zip
[root@java-tomcat1 ~]# cp -r ROOT/ usr/local/tomcat/webapps/
[root@java-tomcat1 ~]# cd usr/local/tomcat/webapps/
[root@java-tomcat1 webapps]# ls
ROOT
[root@java-tomcat1 webapps]# vim ROOT/WEB-INF/config/jdbc.properties

配置数据库连接----jdbc
将数据导入数据库:

[root@java-tomcat1 ~]# cd DB/
[root@java-tomcat1 DB]# ls
jspgou.sql
[root@java-tomcat1 DB]# mysql -uroot -p'密码' -D jspgou < jspgou.sql
[root@java-tomcat1 DB]# vim /etc/my.cnf    #添加sql_mod模块

sql_mode=STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUB
explicit_defaults_for_timestamp=1

[root@java-tomcat1 DB]# systemctl restart mysqld
[root@java-tomcat1 DB]# mysql -uroot -p'密码' -D jspgou < jspgou.sql
[root@java-tomcat1 ~]# /data/application/tomcat/bin/startup.sh

访问:http://IP:8080/ 查看部署页面

END