一、Tomcat简介

Tomcat服务器是一个免费的开放源代码的Web应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。

Tomcat和Nginx、Apache(httpd)、lighttpd等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。不过, Tomcat处理静态HTML的能力不如Nginx/Apache服务器。目前Tomcat最新版本为9.0。Java容器还有resin、weblogic等。

二、Tomcat安装及部署

系统环境:Centos7

第一步:下载tomcat安装包

tomcat官网:https://tomcat.apache.org/

第二步:安装包上传至linux中

第三步:下载java环境         #Tomcat是运行Java的一个容器,需要有Java环境

选择yum安装tomcat需要的jdk,就不用再手动配置环境变量

[root@ren3 ~]# yum install java -y

第四步:解压tomcat安装包

[root@ren3 ~]# unzip apache-tomcat-9.0.14.zip

第五步:移动并改名

[root@ren3 ~]# mv apache-tomcat-9.0.14 /usr/local/tomcat           #会自动转换成二进制可执行文件

第六步:授予执行权限

[root@ren3 local]# chmod -R a+x tomcat/

第七步:启动tomcat

sh catalina.sh start#启动时最好使用catalina命令,操作过程会存放在catalina.out日志里

tailf catalina.out#监控catalina日志

[root@ren3 bin]# ./startup.sh

[root@ren3 bin]# ss -tnl           #启动Tomcat会开启以下三个端口

State      Recv-Q Send-Q Local Address:Port          Peer Address:Port

LISTEN      0      100         :::8009           :::*

LISTEN      0      100         :::8080           :::*

LISTEN      0       1   ::ffff:127.0.0.1:8005          :::*

[root@ren3 bin]# ./shutdown.sh            #关闭tomcat

[root@ren3 ~]# startup.sh        #在其它目录执行启动命令,无法启动Tomcat,需配置环境变量

[root@ren3 ~]# vim /etc/profile      #环境变量主配置文件

[root@ren3 ~]# vim /etc/profile.d/tomcat.sh               #配置环境变量子配置文件

#######################################

export PATH=/usr/local/tomcat/bin/:$PATH        #环境变量设置内容

##########################################

[root@ren3 ~]# source /etc/profile.d/tomcat.sh           #重新加载配置文件使其生效

[root@ren3 ~]# startup.sh        #可以在任何目录启动Tomcat了

第八步:添加防火墙

[root@ren3 ~]# firewall-cmd --add-port=8080/tcp

[root@ren3 ~]# firewall-cmd --add-port=8080/tcp --permanent

第九步:浏览器访问

三、Tomcat相关文件介绍

1、Tomcat目录介绍

[root@ren3 ~]# cd /usr/local/tomcat

[root@ren3 tomcat]# ls

bin   lib      logs    RELEASE-NOTES temp     work

conf LICENSE NOTICE RUNNING.txt    webapps

[root@ren3 tomcat]# tree -L 1

├── bin               #用以启动、关闭Tomcat或者其它功能的脚本(.bat文件和.sh文件)

├── conf             #用以配置Tomcat的XML及DTD文件

├── lib                #存放web应用能访问的JAR包

├── LICENSE

├── logs                     #Catalina和其它Web应用程序的日志文件

├── NOTICE

├── RELEASE-NOTES

├── RUNNING.txt

├── temp                   #临时文件

├── webapps             #Web应用程序根目录

└── work                   #用以产生有JSP编译出的Servlet的.java和.class文件

[root@ren3 tomcat]# cd webapps/

[root@ren3 webapps]# ll

总用量 8

drwxr-x--x 14 root root 4096 8月 14 09:29 docs         #Tomcat帮助文档

drwxr-x--x 6 root root   83 8月 14 09:29 examples              #web应用实例

drwxr-x--x 5 root root   87 8月 14 09:29 host-manager              #管理

drwxr-x--x 5 root root 103 8月 14 09:29 manager        #管理

drwxr-x--x 3 root root 4096 8月 14 09:29 ROOT           #默认网站根目录

2、Tomcat日志

[root@ren3 logs]# tailf catalina.out             #Tomcat的实时日志

3、Tomcat主配置文件server.xml详解

[root@ren3 conf]# vim server.xml

<Server port="8005" shutdown="SHUTDOWN">

#Server元素代表整个容器,是Tomcat实例的顶层元素。由org.apache.catalina.Server接口来定义。它包含一个<Service>元素,并且它不能做为任何元素的子元素。

#port指定Tomcat监听shutdown命令端口。终止服务器运行时,必须在Tomcat服务器所在的机器上发出shutdown命令,该属性是必须的。

#shutdown指定终止Tomcat服务器运行时,发给Tomcat服务器的shutdown监听端口的字符串,该属性必须设置。

<Connector port="8080" protocol="HTTP/1.1"

connectionTimeout="20000"

redirectPort="8443" />

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

#connector:接收用户请求,类似于httpd的listen配置监听端口.

#port指定服务器端要创建的端口号,并在这个端口监听来自客户端的请求。

#protocol连接器使用的协议,支持HTTP和AJP。AJP(Apache Jserv Protocol)专用于tomcat与apache建立通信的, 在httpd反向代理用户请求至tomcat时使用(可见Nginx反向代理时不可用AJP协议)。

#redirectPort指定服务器正在处理http请求时收到了一个SSL传输请求后重定向的端口号

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

<Host name="localhost" appBase="webapps"

unpackWARs="true" autoDeploy="true">

#host表示一个虚拟主机

#name指定主机名

#appBase应用程序基本目录,即存放应用程序的目录.一般为appBase="webapps" ,相对于CATALINA_HOME而言的,也可以写绝对路径。

#unpackWARs如果为true,则tomcat会自动将WAR文件解压,否则不解压,直接从WAR文件中运行应用程序

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

4、Tomcat的三个端口

Tomcat主配置文件Server.xml文件里面有三个端口

第一个(8005):接收SHUTDOWN指令

port指定Tomcat监听shutdown命令端口.终止服务器运行时,必须在Tomcat服务器所在的机器上发出shutdown命令.该属性是必须的.

shutdown指定终止Tomcat服务器运行时,发给Tomcat服务器的shutdown监听端口的字符串.该属性必须设置

-->

<Server port="8005" shutdown="SHUTDOWN">

验证:

[root@ren3 conf]# telnet 127.0.0.1 8005

Trying 127.0.0.1...

Connected to 127.0.0.1.

Escape character is '^]'.

SHUTDOWN

Connection closed by foreign host.

第二个(8080):接收HTTP协议

connector:接收用户请求,类似于httpd的listen配置监听端口.

port指定服务器端要创建的端口号,并在这个端口监听来自客户端的请求。

redirectPort指定服务器正在处理http请求时收到了一个SSL传输请求后重定向的端口号

第三个(8009):接收AJP协议

protocol连接器使用的协议,支持HTTP和AJP。AJP(Apache Jserv Protocol)专用于tomcat与apache建立通信的, 在httpd反向代理用户请求至tomcat时使用(可见Nginx反向代理时不可用AJP协议)

四、Tomcat多实例部署

多实例:一台服务器跑多个Tomcat服务,可以最大化程度利用系统资源

第一步:复制Tomcat目录

[root@ren3 local]# cp tomcat/ tomcat1 -a

[root@ren3 local]# cp tomcat/ tomcat2 -a

第二步:修改配置文件

[root@ren3 local]# netstat -anp |grep 8006

[root@ren3 local]# netstat -anp |grep 8007

[root@ren3 local]# netstat -anp |grep 8081

[root@ren3 local]# netstat -anp |grep 8082        #查看端口是否被占用

[root@ren3 local]# vim /usr/local/tomcat1/conf/server.xml

#################################

22<Server port="8006" shutdown="SHUTDOWN">

69<Connector port="8081" protocol="HTTP/1.1"

########################################

[root@ren3 local]# vim /usr/local/tomcat2/conf/server.xml

#################################

22<Server port="8006" shutdown="SHUTDOWN">

69<Connector port="8081" protocol="HTTP/1.1"

########################################

第三步:启动多实例

[root@ren3 local]# tomcat1/bin/startup.sh

[root@ren3 local]# tomcat2/bin/startup.sh

[root@ren3 local]# ss -tnl              #查看端口是否开启

第四步:添加防火墙

[root@ren3 local]# firewall-cmd --add-port=8081/tcp --permanent

[root@ren3 local]# firewall-cmd --add-port=8082/tcp --permanent

[root@ren3 local]# firewall-cmd --reload

第五步:浏览器访问

五、Tomcat搭建集群

第一步:修改网站文件以便区分

[root@ren3 local]# rm -rf tomcat/webapps/ROOT/*

[root@ren3 local]# rm -rf tomcat1/webapps/ROOT/*

[root@ren3 local]# rm -rf tomcat2/webapps/ROOT/*

[root@ren3 local]# echo "000000" > tomcat/webapps/ROOT/index.html

[root@ren3 local]# echo "111111" > tomcat1/webapps/ROOT/index.html

[root@ren3 local]# echo "2222222" > tomcat2/webapps/ROOT/index.html

第二步:安装nginx

[root@ren3 local]# yum -y install nginx

[root@ren3 ~]# netstat -anp |grep 80           #检查80端口是否在用

第三步:配置nginx(负载均衡)

[root@ren3 ~]# vim /etc/nginx/nginx.conf         #删除主配置文件中的设置

[root@ren3 ~]# vim /etc/nginx/conf.d/threecat.conf         #配置新的配置文件

############################################################

server {

listen 80;

server_name threecat;

location / {

proxy_pass http://ren;

}

}

upstream ren {

server 192.168.11.3:8080 weight=2 max_fails=2 fail_timeout=2;

server 192.168.11.3:8081 weight=2 max_fails=2 fail_timeout=2;

server 192.168.11.3:8082 weight=2 max_fails=2 fail_timeout=2;

}

#############################################################

[root@ren3 ~]# nginx -t          #检查配置文件是否有误

[root@ren3 ~]# systemctl restart nginx

[root@ren3 ~]# systemctl enable nginx

[root@ren3 ~]# firewall-cmd --add-port=80/tcp --permanent

[root@ren3 ~]# firewall-cmd –reload

第四步:浏览器验证

六、Tomcat上线jpress博客系统

jpress类似于wordpress的一个开源博客系统

第一步:下载jpress

https://gitee.com/fuhai/jpress/blob/alpha/wars/jpress-web-newest.war

第二步:上传jpress包至ROOT下

[root@ren3 ROOT]# pwd

/usr/local/tomcat/webapps/ROOT

[root@ren3 ROOT]# rz

[root@ren3 ROOT]# ls

fuhai-jpress-v2.0-rc.8.zip

第三步:解压

使用unzip进行解压

[root@ren3 ROOT]# unzip fuhai-jpress-alpha.zip

[root@ren3 ROOT]# ls

fuhai-jpress-alpha.zip jpress

第四步:复制war包至ROOT下

[root@ren3 wars]# pwd

/usr/local/tomcat/webapps/ROOT/jpress/wars

[root@ren3 wars]# cp jpress-web-newest.war /usr/local/tomcat/webapps/ROOT/

第五步:解压war包

[root@ren3 ROOT]# unzip jpress-web-newest.war

[root@ren3 ROOT]# ls

fuhai-jpress-alpha.zip jpress jpress-web-newest.war META-INF robots.txt static templates WEB-INF

第六步:浏览器进行访问

http://192.168.11.3:8080/jpress

提示连接数据库

第七步:下载并创建数据库和用户

[root@ren3 ROOT]# yum -y install mariadb-server

[root@ren3 ROOT]# systemctl restart mariadb

[root@ren3 ROOT]# systemctl enable mariadb

[root@ren3 ROOT]# mysql -uroot

MariaDB [(none)]> create database ren;

MariaDB [(none)]> grant all on *.* to ren3@'localhost' identified by '123';

MariaDB [(none)]> exit

Mysql(-u:指定用户名,-h:指定主机IP,-p:指定登录密码)

grant all on *.* to ren3@’%’ identified by ‘123’      #%指所有主机都可以调用该数据库

第七步:JPress安装

1、填写数据库信息

2、根据提示输入网站名称及管理员账号和密码,点击完成

第八步:重启Tomcat

[root@ren3 ROOT]# shutdown.sh

[root@ren3 ROOT]# startup.sh

第九步:再次访问Tomcat

第十步:进入管理员界面

http://192.168.11.3:8080/admin

输入之前设置的管理员账号及密码,点击登录

第十一步:撰写文章

退出当前登录用户,直接输入IP加端口再次访问即可看到我们刚才写的文章

linux进阶之Tomcat服务篇的更多相关文章

  1. linux定时重启tomcat服务的脚本学习

    要求:在linux中定时重启一个tomcat服务 一:shell脚本即Shell Script [1],Shell脚本与Windows/Dos下的批处理相似,也就是用各类命令预先放入到一个文件中,方便 ...

  2. linux下启动tomcat服务

     Linux下tomcat服务的启动.关闭与错误跟踪,使用PuTTy远程连接到服务器以后,通常通过以下几种方式启动关闭tomcat服务:切换到tomcat主目录下的bin目录(cd usr/local ...

  3. linux下启动tomcat服务的命令是什么

    Linux下tomcat服务的启动.关闭与错误跟踪,使用PuTTy远程连接到服务器以后,通常通过以下几种方式启动关闭tomcat服务:切换到tomcat主目录下的bin目录(cd usr/local/ ...

  4. 在linux上部署tomcat服务

    在linux上部署tomcat 1.安装JDK 2.下载tomcat http://tomcat.apache.org/download-70.cgi 3.上传到服务器,并解压 4.上传war包或者已 ...

  5. Linux服务器学习----tomcat 服务配置实验报告(一)

    一.实验目的 1. 掌握 tomcat 服务的搭建 二.实验内容 1. 搭建一台缓存 tomcat 服务器 三.实验环境1. tomcat 服务器 centos7 对应主机 ip 为 10.10.64 ...

  6. 分享一篇Linux系统使用Tomcat服务时交互式修改server.xml中端口号的shell脚本

    #!/bin/bash echo -e '\n' echo "***********************************" port1=`grep -r "s ...

  7. 虚拟机 主机无法访问虚拟机中Linux上的tomcat服务

    在wmware中安装linux后安装好数据库,JDK及tomcat后启动服务,虚拟机中可以访问,但是主机却无法访问,但是同时主机和虚拟机之间可以ping的通,网上查阅资料后,解决方法是关闭虚拟机中的防 ...

  8. linux下部署tomcat服务器之安装tomcat

    下载tomcat压缩包 apache-tomcat-7.0.82.tar.gz 在把包放到linux 的softwore文件夹下  自己选择文件夹 tar -zxvf apache-tomcat-7. ...

  9. Linux进阶之补充知识篇

    一.Linux系统的主要特点: 开放性:指系统遵循世界标准规范,特别是遵循开放系统互连(OSI)国际标准 多用户:允许多个用户从相同或不同终端上同时使用同一台计算机 多任务:它是指计算机同时执行多个程 ...

随机推荐

  1. 【Java】8.0 数组及其操作

    [概述] 有时候,我们需要某类的变量,它们是用于表达同一类的东西,但每个个体有不一样,比如学生成绩表的各个成绩 我们不可能为每个学生单独建立一个int变量来表示成绩,此时我们可以创建一个数组,再把每个 ...

  2. 【C/C++】memset方法的误区

    目录 一.前言 二.函数作用 三.效率对比 四.误区总结 1.按字节设置 2.设置的值只有最低字节有效 3.堆内存不可直接 sizeof 取首地址 4.传参数组不可直接 sizeof 取首地址 一.前 ...

  3. OO电梯系列优化分享

    目录 前言 HW5 HW6 第二次作业uml协作图 HW7 第三次作业uml协作图 前言 本单元作业在优化方面确实有一些想法值得分享,故单开一篇博客分享一下三次作业的优化以及架构. 三次作业的共同之处 ...

  4. Kafka核心技术与实战,分布式的高性能消息引擎服务

    Kafka是LinkedIn开发并开源的一套分布式的高性能消息引擎服务,是大数据时代数据管道技术的首选. 如今的Kafka集消息系统.存储系统和流式处理平台于一身,并作为连接着各种业务前台和数据后台的 ...

  5. css详解background八大属性及其含义

    background(背景) 以前笔者在css盒模型以及如何计算盒子的宽度一文中提到过盒模型可以看成由 元素外边距(margin).元素边框(border).元素内边距(padding)和元素内容(c ...

  6. Mybatis3源码笔记(七)Plugin

    1.Mybatis3的插件其实主要是用到了责任链和动态代理两种模式相结合而生成的.下面我们看一个例子,在执行所有update操作时,执行一个小小的测试输出. @Intercepts({@Signatu ...

  7. Jenkins 自动触发执行的配置

    1. 两种触发方式 2. jenkins 和 github 同步配置 ngrok 安装 webhook 配置 1. 两种触发条件 Jenkins 中建立的任务是可以设置自动触发,更进一步的实现自动化. ...

  8. 博客之初体验-----python初了解

    ---恢复内容开始--- 1.python2.x与python3.x的区别 (1) 2.x的默认编码是ASSIC码,不支持中文 (2) 3.x的默认编码是UNICODE,支持中文 (3) 2.x版本与 ...

  9. Sql server注入一些tips

    sql server环境测试: 几个特性: 1.sql server兼容性可以说是最差的. 举例: select x from y where id=1 字符串查询 select x from y w ...

  10. C语言基础知识错误总结

    1. 以下选项中能表示合法常量的是( ). Select one: a. '\' b. 1.5E2.0 c. "\007" d. 1,200  Feedback The corre ...