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 "%r" %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