一、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加端口再次访问即可看到我们刚才写的文章

转载于:https://www.cnblogs.com/renyz/p/11354323.html

linux进阶之Tomcat服务篇相关推荐

  1. Linux 进阶命令 - 集大成篇

    目录 1.  grep  命令 2.  wc  命令 3.  echo  命令 4.  tail  命令 5.  su  命令 6.  sudo  命令 7.  chomd  命令 8.  chown ...

  2. 部署Linux服务器实验报告,Linux服务器学习----tomcat 服务配置实验报告(一)

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

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

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

  4. linux下启动tomcat服务

    目前有个java+mysql项目需部署到 麒麟系统,一番折腾后总算成功部署上去了,其操作和windows有本质区别,需要使用终端命令行,现将常用运维操作整理如下. Linux下tomcat服务的启动. ...

  5. linux下查看Tomcat服务端口号

    第一种使用命令查看 第一步,ps -ef|grep tomcat 查看运行的Tomcat 服务,获取 PID 第二步,根据 PID ,查找端口号 netstat -antup |grep LISTEN ...

  6. 【Linux】循序进阶学运维-服务篇-tomcat入门

    文章目录 什么是tomcat tomcat默认支持网页格式 tomcat安装 1. 安装需要的环境 2. 配置java环境 3. 查看java是否安装成功 4. 上传tomcat包开始安装 5. 解压 ...

  7. linux查看tomcat在,在陌生Linux环境查看Tomcat服务的方法

    1.查看Tomcat进程linux 执行命令$ps -ef|grep tomcat 你就能找出tomcat占据的进程号,固然这要求tomcat启动了.正则表达式 # ps -ef | grep tom ...

  8. suse11 linux 开机启动 tomcat服务

    suse11 linux 下开机启动 tomcat export LC_ALL=zh_CN.UTF-8 /etc/rc.d/boot.local 文件中增加一行 tomcat 启动脚本 /home/a ...

  9. Linux进阶_时间同步服务

    成功不易,加倍努力! 1 计时方式 1.1 古代计时方式 1.2 现代计时方式 2 时间同步服务 3 chrony 3.1 chrony介绍 3.2 chrony 文件组成 3.3 配置文件chron ...

  10. linux系统能够ping通却无法访问,win7与linux虚拟机可互相ping通,却无法访问linux下的tomcat服务...

    原因:linux防火墙屏蔽了访问 解决方法:关闭防火墙 方法一: 以root身份执行setup命令; 使用上下键选择firewall configuration 会看到Firewall:[*]Enab ...

最新文章

  1. 期望dp ---- E. Vasya and Magic Matrix(二维转一维+前缀和优化的期望dp)
  2. 实现当UILable的内容超出其范围后自动滚动效果
  3. C++——类访问修饰符
  4. redis 失效时间单位是秒还是毫秒_Redis 事务与过期时间详细介绍
  5. TIOBE 2011年7月编程语言排行榜:Objective-C成为年度语言
  6. NOIP模拟测试14「旋转子段·走格子·柱状图」
  7. matlab的max与min函数
  8. 前端学习(2077):开始回顾
  9. 互联网晚报 | 12月27日 星期一 | 蚂蚁消费金融增资220亿;小米MIUI13正式官宣;《蜘蛛侠3》登顶全球年度票房冠军...
  10. Kali Linux 无线渗透测试入门指南 第三章 绕过 WLAN 身份验证
  11. 安卓依然是华为手机首选,鸿蒙系统或许不用于手机
  12. 7-8 评委打分 (5 分)
  13. andriod连接mysql测试工具,Android数据库调试工具
  14. sql 导入excel 遇到问题
  15. 动态链接库dll,导入库lib,静态链接库lib
  16. 移远NBIOT BC95-B5使用CoAP协议接入华为IoT平台第一篇
  17. ISO 27001,能给企业带来哪些好处?
  18. android实现通话录音获取上传实现过程记录。
  19. pytest学习和使用8-fixture如何实现teardown功能?(yield的使用)
  20. 霍兰德人格分析雷达图的两个坑

热门文章

  1. 450B Jzzhu and Sequences 我考研之后做的第一道题
  2. poj 2253 Frogger floyd 长路求权值最大边,属于简单题!!!!
  3. pr剪辑教程,如何跨剪辑应用和调整效果?
  4. 苹果Mac全能视频播放器:Playr
  5. 如何在苹果Mac中使用聚焦搜索 NTFS 格式磁盘?
  6. 如何在 macOS 上禁用 Adob​​e 后台进程,保存 CPU、内存和网络活动?
  7. 矢量绘图工具:Sketch 78 for mac
  8. 使用Easy Duplicate Photo Finder for Mac如何查找重复的图片?
  9. ubuntu,装完PYTHON3 pip3 install 报错
  10. 新型恶意软件—— Grizzly攻击Telegram