JDK 安装:

# 选择版本:
yum list all | grep jdk # 安装openjdk-1.8.0:
yum install java-1.8.0-openjdk.x86_64 -y # rpm包的jdk安装:
下载JDK # 添加环境变量:
vim /etc/profile.d/jdk.sh
export JAVA_HOME=/use/java/default
export PATH=$JAVA_HOME/bin:$PATH
source jdk.sh # 检测安装后的openjdk的版本:
[root@node-2 ~]# java -version
openjdk version "1.8.0_252"
OpenJDK Runtime Environment (build 1.8.0_252-b09)
OpenJDK 64-Bit Server VM (build 25.252-b09, mixed mode)

tomcat 安装:

################# RPM 安装####################
# 安装 Tomcat 软件依赖:
yum install tomcat tomcat-admin-webapps tomcat-webapps -y # 查看 yum 安装tomcat 到哪里:
rpm -ql tomcat # 启动tomcat:
systemctl enable tomcat.service
systemctl start tomcat.service ################ tar 安装 ########################
# 源码安装:
cd /data/src/
wget https://mirrors.bfsu.edu.cn/apache/tomcat/tomcat-8/v8.5.55/bin/apache-tomcat-8.5.55.tar.gz
tar -zxf apache-tomcat-8.5.55.tar.gz && mv apache-tomcat-8.5.55 /data/soft/
ln -sv /data/soft/apache-tomcat-8.5.55 /data/soft/tomcat # 添加系统账号(小权限用户来启动应用):
useradd -r www
chown -R www.www ./
su - www -c '/data/soft/tomcat/bin/catalina.sh start'
ps aux | grep tomcat

目录结构

目录 说明
bin 服务启动,停止相关
conf 配置文件
lib 库目录
logs 日志目录
webapps 应用程序,应用部署
work JSP 编译后的结果文件

配置文件:

文件名 说明
server.xml 主配置文件
web.xml 每个webapp只有部署后才能被访问,它的部署方式通常由web.xml进行定义,其存放位置为:WEB-INF/目录中,此文件为所有的webapps提供默认部署相关的配置
context.xml 每个webapp 都可以专用的配置文件, 它通常由专用的配置文件context.xml来定义,其存放位置为web-inf/目录中,此文件为所有的webapps提供默认配置.
tomcat-user.xml 用户认证的账号和密码文件
catalina.policy 当使用-security选项启动tomcat时,用于为tomcat设置安全策略.
catalina.properties java属性的定义文件, 用于设定加载器路径,以及一些与JVM调优相关参数
logging.properties 日志系统相关的配置,log4j

部署打包:

# 介绍参数:
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">
appBase # 代码目录
unpackWARs # 自动解压
autoDeploy # 自动部署 #部署Deploy:
1 部署: 将webapp的源文件放置到目标目录, 通过web.xml和context.xml 文件中的路径就可以访问该webapp,通过类加载器加载其特有的类和依赖的类到JVM上
1.1 ) 自动部署 Auto Deploy: Tomcat发现多了这个应用就把它加载起来.
1.2 ) 手动部署 :
1.2.1 ) 冷部署: 将webapp放到指定目录,才去启动Tomcat
1.2.2 ) 热部署: Tomcat 服务不停止,需要依赖工具manager,ant脚本,TCD(tomcat client deployer)等
2 反部署 undeploy: 停止webapp的运行,并从JVM上清楚已经加载的类,从tomcat实例上卸载掉webapp
3 启动start: 是webapp能够访问
4 停止stop : webapp 不能访问,不能提供服务,但是JVM并不清除它.

添加一个应用:

# cd
常见开发项目目录组成
# mkdir projects/myapp/{WEB-INF,classes,lib} -pv
mkdir: 已创建目录 "projects"
mkdir: 已创建目录 "projects/myapp"
mkdir: 已创建目录 "projects/myapp/WEB-INF"
mkdir: 已创建目录 "projects/myapp/classes"
mkdir: 已创建目录 "projects/myapp/lib" 常见应用首页,内容就用上面的test.jsp
# vi projects/myapp/index.jsp 手动复制项目目录到webapps目录下去
# cp -r projects/myapp/ /usr/local/tomcat/webapps/ 使用http://YourIP:8080/myapp/访问试试看

配置详解 server.xml


<?xml version="1.0" encoding="UTF-8"?>
<Server port="8005" shutdown="SHUTDOWN">
<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">
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
</Host>
</Engine>
</Service>
</Server> ## 安全建议: 关闭此端口. 8005是Tomcat的管理端口,默认监听在127.0.0.1上。SHUTDOWN这个字符串接收到后就会关闭此Server。
<Server port="8005" shutdown="SHUTDOWN">
** 这个管理功能建议禁用,改shutdown为一串猜不出的字符串。
<Server port="8005" shutdown="aldfjfgfgdfasxcvbgjywrtyehefghdfgsdgsd"> ## 用户认证,配置文件是conf/tomcat-users.xml。
<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>

打开tomcat-users.xml,我们需要一个角色manager-gui。

<tomcat-users xmlns="http://tomcat.apache.org/xml"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://tomcat.apache.org/xml tomcat-users.xsd"
version="1.0">
<role rolename="manager-gui"/>
<user username="wayne" password="wayne" roles="manager-gui"/>
</tomcat-users> *** Tomcat启动加载后,这些内容是常驻内存的。如果配置了新的用户,需要重启Tomcat。

访问manager的时候告诉403,提示中告诉去manager的context.xml中修改

# 允许访问的IP或者网络(allow里面加入 192\.168\.\d+\.d+|0\.0\.0\.0|10\.\d+\.\d+\.\d+ )
vim /data/soft/tomcat/webapps/manager/META-INF/context.xml <?xml version="1.0" encoding="UTF-8"?>
<Context antiResourceLocking="false" privileged="true" >
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1|192\.168\.\d+\.d+|0\.0\.0\.0|10\.\d+\.\d+\.\d+" />
<Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.filters\.CsrfPreventionFilter\$LruCache(?:\$1)?|java\.util\.(?:Lin
ked)?HashMap"/>
</Context>

访问manager 页面,测试各种功能:

/data/soft/tomcat/bin/catalina.sh stop
/data/soft/tomcat/bin/catalina.sh start # 浏览器访问:
http://IP:8080/ 页面上功能即可使用

虚拟主机配置:

1 Service 实例配置:一般情况下一个server实例配置一个service,name属性相当于该Service的ID.
<Service name="Catalina"> 2 连接器配置:
* 8080是http端口,8443是https端口:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" /> 3 引擎配置:
* defaultHost指向内部定义某虚拟主机,缺省虚拟 主机可以改动,默认localhost.
*** 在defaultHost这里,可以更改主机的缺省默认主机id,必须是下面Host 区块里面的,默认访问就是制定的ID.一定要一样
<Engine name="Catalina" defaultHost="localhost"> 4 虚拟主机配置:
4.1 ) name 必须是主机名,用主机名来匹配.
4.2 ) appBase 当期主机的网页根目录, 相对于CATALINA_HOME,也可以使用绝对路径.
4.3 ) unpachWARs 是否自动解压war格式.
4.4 ) autoDeploy 热部署,自动加载并运行应用. 4.5 ) 创建网站根目录(/data/webapps/ROOT),创建内部文件夹(classes,lib,WEB-INF,index.jsp)
mkdir -p /data/webapps/ROOT && mkdir -pv /data/webapps/ROOT/{classes,lib,WEB-INF}, 再创建一个index.jsp. <Host name="node1.magedu.net" appBase="/data/webapps" unpackWARs="true" autoDeploy="false">
</Host>
*** 修改配置记得要重启.
/data/soft/tomcat/bin/catalina.sh configtest
/data/soft/tomcat/bin/catalina.sh stop
/data/soft/tomcat/bin/catalina.sh start """ index.jsp <%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>jsp例子</title>
</head>
<body>
node1.magedu.net 后面的内容是服务器端动态生成字符串,最后拼接在一起
<%
out.println("hello jsp");
%>
</body>
</html> """ 5 Context 配置:
5.1 ) 路径映射.
5.2 ) 应用独立配置,例如单独配置应用日志, 单独配置应用访问控制.
5.3 ) 代码如下:
<Host name="node1.magedu.net" appBase="/data/webapps" unpackWARs="true" autoDeploy="false">
<Context path="/test" docBase="/data/test" reloadable="" />
</Host> mkdir /data/myappv1 # 创建一个版本myappv1
cp -rf webapps/ROOT/* myappv1/ # cp 内容到新版本目录
ln -sv myappv1 test #给新版本做个软连接, ** 重启tomcat后
使用http://node1.magedu.com:8080/test/ 5.4 ) 配置说明:
path指的是访问的路径
docBase,可以是绝对路径,也可以是相对路径(相对于Host的appBase)
reloadable,true表示如果WEB-INF/classes或META-INF/lib目录下.class文件有改动,就会将WEB应用重新加载。
生成环境中,会使用false来禁用。 *** 注意:这里特别使用了软链接,原因就是以后版本升级,需要将软链接指向myappv2,重启Tomcat。如果新版上
线后,出现问题,重新修改软链接到上一个版本的目录,并重启,就可以实现回滚。

最新文章

  1. 4.6 .net core依赖注入的封装
  2. FPGA 相同模块 VIVADO synthesis综合后
  3. 第三章 设计程序架构 之 设计实现Windows Azure 角色生命周期
  4. MFC Tips(一) 在程序内部 保存读取配置
  5. mysqli 取出数据库中某表的表头和内容
  6. [转] 与调试器共舞 - LLDB 的华尔兹
  7. .NET页面301跳转处理
  8. HTML mate标签
  9. JS实现数组去重的6种方法总结
  10. chromdriver与geckodriver和浏览器版本问题
  11. UML作业第二次:类在类图中的表示
  12. 操作日志的设计小结by大熊
  13. Docker详细介绍安装与镜像制作和拉取
  14. mysql死锁-查询锁表进程-分析锁表原因【转】
  15. 不可不知 DDoS的攻击原理与防御方法
  16. POJ 3414 Pot (输出路径)【BFS】
  17. 求强连通分量Tarjan算法
  18. python中的extend
  19. 线程同步 – lock和Monitor
  20. 关于socket知识整理

热门文章

  1. AcWing 326. XOR和路径
  2. Spring 中常用的注解
  3. 在虚拟机中安装Linux系统CentOS7详细教程!!!超详细!!!!一看就会!!!手把手教学!!!
  4. 搞定MySQL安装难安装贵问题
  5. 云原生时代,Java的危与机(周志明)
  6. Web服务器-正则表达式-正则其他(3.1.3)
  7. 超简单的 Docker部署 SpringBoot项目 步骤
  8. Python进阶学习_连接操作Redis数据库
  9. Unity使用小剧场—创建的按钮On Click()只有MonoScript怎么办
  10. 浅析Python闭包