linux进阶之Tomcat服务篇
一、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服务篇的更多相关文章
- linux定时重启tomcat服务的脚本学习
要求:在linux中定时重启一个tomcat服务 一:shell脚本即Shell Script [1],Shell脚本与Windows/Dos下的批处理相似,也就是用各类命令预先放入到一个文件中,方便 ...
- linux下启动tomcat服务
Linux下tomcat服务的启动.关闭与错误跟踪,使用PuTTy远程连接到服务器以后,通常通过以下几种方式启动关闭tomcat服务:切换到tomcat主目录下的bin目录(cd usr/local ...
- linux下启动tomcat服务的命令是什么
Linux下tomcat服务的启动.关闭与错误跟踪,使用PuTTy远程连接到服务器以后,通常通过以下几种方式启动关闭tomcat服务:切换到tomcat主目录下的bin目录(cd usr/local/ ...
- 在linux上部署tomcat服务
在linux上部署tomcat 1.安装JDK 2.下载tomcat http://tomcat.apache.org/download-70.cgi 3.上传到服务器,并解压 4.上传war包或者已 ...
- Linux服务器学习----tomcat 服务配置实验报告(一)
一.实验目的 1. 掌握 tomcat 服务的搭建 二.实验内容 1. 搭建一台缓存 tomcat 服务器 三.实验环境1. tomcat 服务器 centos7 对应主机 ip 为 10.10.64 ...
- 分享一篇Linux系统使用Tomcat服务时交互式修改server.xml中端口号的shell脚本
#!/bin/bash echo -e '\n' echo "***********************************" port1=`grep -r "s ...
- 虚拟机 主机无法访问虚拟机中Linux上的tomcat服务
在wmware中安装linux后安装好数据库,JDK及tomcat后启动服务,虚拟机中可以访问,但是主机却无法访问,但是同时主机和虚拟机之间可以ping的通,网上查阅资料后,解决方法是关闭虚拟机中的防 ...
- linux下部署tomcat服务器之安装tomcat
下载tomcat压缩包 apache-tomcat-7.0.82.tar.gz 在把包放到linux 的softwore文件夹下 自己选择文件夹 tar -zxvf apache-tomcat-7. ...
- Linux进阶之补充知识篇
一.Linux系统的主要特点: 开放性:指系统遵循世界标准规范,特别是遵循开放系统互连(OSI)国际标准 多用户:允许多个用户从相同或不同终端上同时使用同一台计算机 多任务:它是指计算机同时执行多个程 ...
随机推荐
- 三、python学习-常用模块
一.常用模块 1.math数学模块 在计算机中,所有数值在计算机底层都是约等于机制,并不是精确地 import math #ceil() 向上取整操作 math.ceil(3.1)=>4 #fl ...
- JavaWeb 补充(Filter&Listener)
目录 Filter:过滤器 Listener:监听器 Filter:过滤器 1. 概念: * 生活中的过滤器:净水器,空气净化器,土匪. * web中的过滤器:当访问服务器的资源时,过 ...
- 简单的了解下Java设计模式:迭代器模式(转载)
迭代器模式定义 迭代器模式(Iterator),提供一种方法顺序访问一个聚合对象中的各种元素,而又不暴露该对象的内部表示. Java 开发过程中遍历是常用的.如下边程序: for(int i =0 ; ...
- 浅谈跨域问题,CORS跨域资源共享
1,何为跨域? 在理解跨域问题之前,你先要了解同源策略和URL,简单叙述: 1)同源策略 三同:协议相同,域名相同,端口相同: 目的:保证用户信息安全,防止恶意网站窃取数据.同源策略是必须的,否则co ...
- Dubbo学习笔记(二) Dubbo的基本配置
Check启动检查 根据之前的学习,我们简单理解的Dubbo远程调用的基本流程,服务提供者注册到注册中心,然后服务消费者通过监听注册中心达到远程调用的目的,那么如果注册中心中没有消费者对应的接口会怎么 ...
- 【C++】从零开始,只使用FFmpeg,Win32 API,实现一个播放器(一)
前言 起初只是想做一个直接读取视频文件然后播放字符动画的程序.我的设想很简单,只要有现成的库,帮我把视频文件解析成一帧一帧的原始画面信息,那么我只需要读取里面的每一个像素的RGB数值,计算出亮度,然后 ...
- 1.4.15- HTML标签之链接标签
代码如下: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF ...
- Windows Pe 第三章 PE头文件-EX-相关编程-2(RVA_FOA转换)
RVA-FOA之间转换 1.首先PE头加载到内存之后是和文件头内容一样的,就算是偏移不同,一个是磁盘扇区大小(400H)另一个是内存页大小(1000H),但是因为两个都是开头位置,所以相同. 2.看下 ...
- Docker安装和helloworld
0.基本简介(想直接实操,直接跳过去看1就好) Docker 在容器的基础上,进行了进一步的封装,从文件系统.网络互联到进程隔离等等,极大的简化了容器的创建和维护.使得 Docker 技术比虚拟机技术 ...
- 用最容易的方式学会单链表(Python实现)
单链表与数组 在本博客中,我们介绍单链表这种数据结构,链表结构为基于数组的序列提供了另一种选择(例如Python列表). 基于数组的序列也会有如下缺点: 一个动态数组的长度可能超过实际存储数组元素所需 ...