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 安装和配置的更多相关文章

  1. mac 下JDK 与 tomcat 的安装与配置

    一.Mac下JDK的安装 1.先检测Mac是否已经安装过JDK,在终端中输入java 或者 javac 显示说明,表明已经安装过JDK,JDK版本查询终端键入java -version,终端会返回JD ...

  2. TomCat的安装与配置方法

    经过自己的研究,各种烦,所以要写个博客,帮助大家安装这个软件. 一.安装TomCat(因为大家都安装了jdk,所以就不写了) 1.下载TomCat 网址如下:http://tomcat.apache. ...

  3. HappyAA服务器部署笔记1(nginx+tomcat的安装与配置)

    这是本人的服务器部署笔记.文章名称叫"部署笔记1"的原因是之后我对这个进行了改进之后,会有"部署笔记2","部署笔记3"...循序渐进,估计 ...

  4. TOMCAT的安装部署配置(配图解)

    TOMCAT的安装部署配置 前提已经成功搭建配置JDK 下载好压缩包后,直接解压至某一目录下,目录中不能包含中文 双击安装文件,出现如下界面 点击[NEXT],出现如下界面 点击[I AGREE],出 ...

  5. 1、Web容器的理解&Tomcat的安装与配置

    Web容器的理解 <Java Web开发实战经典——基础篇>一书中对Web容器这一概念阐述得很好,借用其观点对Web容器加以理解: 想要运行一个Java Web的程序,则必须有相应的Web ...

  6. Tomcat+JDK安装和配置

    Tomcat+JDK安装和配置 一.打开FlashFXP软件,建立连接,选择需要的包,右击传输到 /home/guest中 二.进入到:cd /home/guest中,对tomcat包进行解压 三.将 ...

  7. JDK和TOMCAT的安装与配置环境变量

    一.JDK该怎么安装与配置环境变量 步骤1.安装JDK选择安装目录,安装jdk1.8.0_77过程中会出现安装提示. 步骤2.(1)安装jdk随意选择目录 只需把默认安装目录\java之前的目录修改即 ...

  8. linux下jdk与tomcat的安装与配置

    Linux中jdk与tomcat的安装与配置 1.搭建环境: (1)Linux环境:CentOS6.1 (2)jdk-1.8 (3)tomcat-9.0 2.在Linux系统上创建目录 在usr/lo ...

  9. Apache Tomcat 7 安装与配置

    下载 首先需要下载tomcat7的安装文件,地址如下: http://mirror.bit.edu.cn/apache/tomcat/tomcat-7/v7.0.69/bin/apache-tomca ...

  10. JDK和Tomcat的安装与配置

    1       JDK的安装 2       JDK的配置 3       JDK安装成功的验证 4       Tomcat的安装 (1)     解压” apache-tomcat-6.0.35. ...

随机推荐

  1. MySQL技术内幕InnoDB存储引擎(五)——索引及其相关算法

    索引概述 索引太多可能会降低运行性能,太少就会影响查询性能. 最开始就要在需要的地方添加索引. 常见的索引: B+树索引 全文索引 哈希索引 B+树索引 B+树 所有的叶子节点存放完整的数据,非叶子节 ...

  2. windows 远程连接报错

    在windows7上或者windows10上远程连接服务器报错("连接错误"),试了网上的方法,发现是服务器安装ssl证书关闭了ssh服务,开启ssh服务后,重启电脑就可以解决这个 ...

  3. 精尽Spring MVC源码分析 - 一个请求的旅行过程

    该系列文档是本人在学习 Spring MVC 的源码过程中总结下来的,可能对读者不太友好,请结合我的源码注释 Spring MVC 源码分析 GitHub 地址 进行阅读 Spring 版本:5.2. ...

  4. vue 图片优化

    https://developer.aliyun.com/mirror/npm/package/image-conversionnpm i image-conversion --save # or y ...

  5. 谷歌学术: but your computer or network may be sending automated queries. To protect our users, we can't process your request right now. See Google Help for more information.

    原因是屏蔽了日本和新加坡的服务器,切换服务器为其他地方即可

  6. robotframework中的参数展开

    robot调用关键字传参的方式是用分隔符分开不同参数,如 keyword arg1 arg2 arg3 arg4 当参数中传入了使用@符号的列表变量时,@符号会将列表展开: @{list1}= Cre ...

  7. python一键搭建ftp服务

    from pyftpdlib.authorizers import DummyAuthorizer from pyftpdlib.handlers import FTPHandler from pyf ...

  8. MATLAB绘图,绘双坐标轴,绘一图二轴等

    clc; clear all; close all; % %% 画极坐标系 % x = 0:.01 * pi:0.5 * pi; % y = cos(x) + sqrt(-1) * sin(x); % ...

  9. Python利用openpyxl带格式统计数据(2)- 处理mysql数据

    上一篇些了openpyxl处理excel数据,再写一篇处理mysql数据的,还是老规矩,贴图,要处理的数据截图: 再贴最终要求的统计格式截图: 第三贴代码: 1 ''' 2 #利用openpyxl向e ...

  10. RocketMQ(七):高性能探秘之线程池

    上一篇文章讲了如何设计和实现高并发高性能的应用,从根本上说明了一些道理.且以rocketmq的mappedFile的实现作为一个突破点,讲解了rocketmq是如何具体实现高性能的.从中我们也知道,m ...