Tomcat-8 安装和配置
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。如果新版上
线后,出现问题,重新修改软链接到上一个版本的目录,并重启,就可以实现回滚。
Tomcat-8 安装和配置的更多相关文章
- mac 下JDK 与 tomcat 的安装与配置
一.Mac下JDK的安装 1.先检测Mac是否已经安装过JDK,在终端中输入java 或者 javac 显示说明,表明已经安装过JDK,JDK版本查询终端键入java -version,终端会返回JD ...
- TomCat的安装与配置方法
经过自己的研究,各种烦,所以要写个博客,帮助大家安装这个软件. 一.安装TomCat(因为大家都安装了jdk,所以就不写了) 1.下载TomCat 网址如下:http://tomcat.apache. ...
- HappyAA服务器部署笔记1(nginx+tomcat的安装与配置)
这是本人的服务器部署笔记.文章名称叫"部署笔记1"的原因是之后我对这个进行了改进之后,会有"部署笔记2","部署笔记3"...循序渐进,估计 ...
- TOMCAT的安装部署配置(配图解)
TOMCAT的安装部署配置 前提已经成功搭建配置JDK 下载好压缩包后,直接解压至某一目录下,目录中不能包含中文 双击安装文件,出现如下界面 点击[NEXT],出现如下界面 点击[I AGREE],出 ...
- 1、Web容器的理解&Tomcat的安装与配置
Web容器的理解 <Java Web开发实战经典——基础篇>一书中对Web容器这一概念阐述得很好,借用其观点对Web容器加以理解: 想要运行一个Java Web的程序,则必须有相应的Web ...
- Tomcat+JDK安装和配置
Tomcat+JDK安装和配置 一.打开FlashFXP软件,建立连接,选择需要的包,右击传输到 /home/guest中 二.进入到:cd /home/guest中,对tomcat包进行解压 三.将 ...
- JDK和TOMCAT的安装与配置环境变量
一.JDK该怎么安装与配置环境变量 步骤1.安装JDK选择安装目录,安装jdk1.8.0_77过程中会出现安装提示. 步骤2.(1)安装jdk随意选择目录 只需把默认安装目录\java之前的目录修改即 ...
- linux下jdk与tomcat的安装与配置
Linux中jdk与tomcat的安装与配置 1.搭建环境: (1)Linux环境:CentOS6.1 (2)jdk-1.8 (3)tomcat-9.0 2.在Linux系统上创建目录 在usr/lo ...
- Apache Tomcat 7 安装与配置
下载 首先需要下载tomcat7的安装文件,地址如下: http://mirror.bit.edu.cn/apache/tomcat/tomcat-7/v7.0.69/bin/apache-tomca ...
- JDK和Tomcat的安装与配置
1 JDK的安装 2 JDK的配置 3 JDK安装成功的验证 4 Tomcat的安装 (1) 解压” apache-tomcat-6.0.35. ...
随机推荐
- P6007 [USACO20JAN]Springboards G
本题解仅用与作者加深算法理解,也欢迎大家的阅读 做题背景 原本关于二维的点的 \(dp\) 问题一直都没有什么想法,昨天晚上再做一道 \(cdq\) 的题目的时候被同学询问了这道题,发现可以用二维偏序 ...
- solidity 合约单元测试报错 org.fisco.bcos.web3j.protocol.exceptions.TransactionException: Transaction has failed with status: 0x16. Gas used: 1163650. (not-enough gas?)
org.fisco.bcos.web3j.protocol.exceptions.TransactionException: Transaction has failed with status: 0 ...
- NetCDF格式.nc
netcdf sfc_pres_temp { dimensions: latitude = 6 ; //纬度轴 longitude = 12 ; //经度轴 variables: float lati ...
- MySQL锁:02.InnoDB锁
目录 InnoDB锁 InnoDB行锁实现机制 InnoDB隐式.显式锁 InnoDB锁类型 共享锁 排他锁 意向锁 InnoDB锁兼容性 InnoDB行锁范围.粒度 InnoDB行锁粒度一览 意向插 ...
- mysql 8.0 MGR组复制配置
一.配置组复制的步骤 1.初始化数据目录 2.配置主服务器(primary) 3.配置辅助服务器(secondaries) 4.启动mysql实例 5.安装组复制插件(primary and seco ...
- python菜鸟教程学习13:文件操作
读和写文件 open() 将会返回一个 file 对象 open(filename, mode) 不同模式打开文件的完全列表:https://www.runoob.com/python3/python ...
- PHP远程代码执行漏洞:CVE-2019-11043
漏洞详情: Nginx上fastcgi_split_path_info在处理带有 %0a 的请求时,会因为遇到换行符 \n 导致PATH_INFO为空.而php-fpm在处理PATH_INFO为空的情 ...
- 容器编排系统k8s之Ingress资源
前文我们了解了k8s上的service资源的相关话题,回顾请参考:https://www.cnblogs.com/qiuhom-1874/p/14161950.html:今天我们来了解下k8s上的In ...
- PSO 粒子群算法
注:本人参考http://www.cnblogs.com/tiandsp/category/348031.html来实现的 算法步骤: 1.首先确定粒子个数与迭代次数. 2.对每个粒子随机初始化位置与 ...
- 测试平台MeterSphere源码入门
前端代码结构 ├── package.json #Vue的模块依赖定义 ├── pom.xml #Maven前后端打包的定义与依赖 ├── public ├── src #前端核心代码 │ ├── a ...