一、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. Unity2D项目-平台、解谜、战斗! 0.2 序言:团队在线协作方案、基线控制

    各位看官老爷们,这里是RuaiRuai工作室,一个做单机游戏的兴趣作坊. 本文跟大家聊一下笔者团队中所使用的在线协作的诸多工具,以及使用这些工具的目的和所记录的内容,希望这些内容在大家团队工作中有所帮 ...

  2. 剑指offer二刷(精刷)

    剑指 Offer 03. 数组中重复的数字 题目描述 在一个长度为 n 的数组里的所有数字都在 0 到 n-1 的范围内.数组中某些数字是重复的,但不知道有几个数字是重复的,也不知道每个数字重复几次. ...

  3. Warm_up(HCTF_2018)

    Warm up 考察知识点: 文件包含漏洞 代码审计 解题步骤 首先我们进来看到了一个滑稽的表情,没啥别的东西,先看看源码 源码中发现有注释 source.php 我们访问source.php,得到代 ...

  4. 如何查看spark版本

    使用spark-shell命令进入shell模式

  5. C++ sort()函数使用简介

    Sort函数简介 ​   sort()函数是C++的一个排序函数,可以对传入参数给定的区间的所有元素进行排序,默认是升序,也可以是降序,如果需要其他排序规则需要自行编写compare()函数作为参数. ...

  6. 14.Quick QML-TextInput详解

    1.TextInput属性用来编辑一行文本,对应QLineEdit,除了正常输入外,我们还可以设置echoMode属性改为密码显示状态,也可以通过validator属性和inputMask属性来设置验 ...

  7. Word 查找和替换字符串方法

    因为项目需要通过word模板替换字符串 ,来让用户下载word, 就在网上找了找word查找替换字符串的库或方法,基本上不是收费,就是无实现,或者方法局限性太大 .docx 是通过xml来存储文字和其 ...

  8. Linux 文件系统和目录结构

    1. Linux 文件系统 2. linux 目录结构 3. 磁盘分区.文件系统和目录的关系 1. Linux 文件系统 Linux 支持多种的文件系统种类,除了 linux 通常使用的 ext 系列 ...

  9. Swagger快速入门教程笔记

    现在市面上大多数公司都摒弃了传统 jsp 开发,采用前后端分离式的开发规则,前端使用 Vue,Angular,React 等等完成页面,后端省掉了视图跳转的过程,直接书写接口返回 json 数据供前端 ...

  10. Weblogic CVE-2020-2551漏洞复现

    Weblogic CVE-2020-2551漏洞复现 0x00 前言 在一次渗透测试过程中,碰见了该漏洞,并使用在野的POC验证了这个漏洞存在,当时工具网传的利用方式去进行利用,没有成功,可能是自己太 ...