Tomcat-8 安装和配置

Posted 风满楼9527

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

image

部署打包:

# 介绍参数:
<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 安装和配置的主要内容,如果未能解决你的问题,请参考以下文章

安装配置tomcat,实现对java代码访问.

Windows 10 +Tomcat 8 + jdk 1.8 + 服务注册 + bat自动安装 配置

Tomcat 8安装与配置

RedHat 7 安装配置Tomcat 8

怎样安装配置tomcat 8

nginx+tomcat安装配置