为了账号安全,请及时绑定邮箱和手机立即绑定

Tomcat服务配置与性能优化

黑洞大仙 全栈工程师
难度初级
时长 2小时23分
学习人数
综合评分9.13
26人评价 查看评价
9.0 内容实用
9.5 简洁易懂
8.9 逻辑清晰
  • 单点登录cas认证,多域名访问:ip或端口号
  • 优化配置

    缓存优化(nginx、gzip)

    运动模式

    BIO:效率低下,一个线程只能处理一个请求,请求过多的时候,线程会相应的增加,很浪费资源,tomcat7以下版本是BIO

    NIO:基于缓存区、非阻塞的I/O。相对于BIO效率更高(利用java异步I/O,少量线程处理大量请求)

    APR:tomcat7及以上默认模式。需要操作系统的支持(tomcat7以及以上版本在操作系统安装了APR时候,tomcat默认是APR模式)


    03:01
    看视频
  • 安全规范

    1、账号管理、认证授权

    (1)共享,无关账号

    在conf/tomcat-uesrs.xml中配置账号密码以及权限

    <role rolename="admin-gui"/>

    <role rolename="manager-gui"/>

    <user username="tomcat" password="admin123456" roles="admin-gui, manager-gui"/>

    (2)口令密码:定期修改

    (3)用户权限

    2、日志配置操作

    conf/server.xml文件中打开注释即可

    <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"

                   prefix="localhost_access_log" suffix=".txt"

                   pattern="%h %l %u %t &quot;%r&quot; %s %b" />

    含义解释:

    className:log日志包

    directory:日志文件存放的目录

    prefix:日志文件名称前缀

    suffix:日志文件后缀名

    pattern:日志格式

    3、设备其他配置操作

    <Connector port="8080" protocol="HTTP/1.1"

                   connectionTimeout="20000"

                   redirectPort="8443" />


  • Cookies

    1、保存咋客户端的纯文本文件

    2、cookie实现离线购物车(场景应用)

    3、XSS-跨站脚本攻击

    在tomcat context.xml配置文件中的context节点设置useHttpOnly=true即可开启cookie加密,提高安全性,使cookie不那么容易被窃取,预防xss攻击

    04:07
    看视频
  • tomcat安全配置:

    1、初始化配置:

    (1)关闭服务器端口;如果不改关闭端口或关闭命令,别人会通过端口号和命令关闭服务,出于安全考虑,需要改变端口号或关闭命令。

    cmd命令窗口:telnet 127.0.0.1 8005   回车,然后输入SHUTDOWN命令关闭服务

    <!--此处有图片-->为了安全起见,可以修改关闭的端口号以及关闭命令,如下:

    <Server port="8555" shutdown="GOTODIE">

     

    (2)隐藏版本信息;防止黑客针对某一版本进行攻击,需要将版本信息隐藏起来。

    版本信息在tocat的lib目录下的catalina.jar里的org.apache.catalina.util里的ServerInfo.properties文件里。

    catalina.jar\org\apache\catalina\util\ServerInfo.properties

    server.info=Apache Tomcat/8.5.31改为NO VERSION

    <!--此处有图片-->

    (3)禁用Tomcat管理页面;防止黑客通过tomcat管理界面对tomcat进行攻击。

    方法:将Root文件重命名,重新建一个空的Root文件。

     

    (4)自定义错误页面;在webapps/ROOT目录下,新建一个error.html错误页面,然后配置一下conf/web.xml

    <!--此处有图片-->

    (5)AJP端口管理: AJP就是为tomcat与http服务器之间通信而定制的一个协议,能够提供比较高的通信速度和效率。如果前端用的是apach服务器,就会使用到这个AJP连接器。但是如果前端用的是nginx做的反向代理,就可以不使用这个连接器,就需要注释掉这个连接器,步骤如下:

    conf/server.xml文件如下:

    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />注释掉即可。

    (6)启用cookie的HttpOnly;


  • tomcat安全配置:

    1、初始化配置:

    (1)关闭服务器端口;如果不改关闭端口或关闭命令,别人会通过端口号和命令关闭服务,出于安全考虑,需要改变端口号或关闭命令。

    cmd命令窗口:telnet 127.0.0.1 8005   回车,然后输入SHUTDOWN命令关闭服务

    <!--此处有图片-->为了安全起见,可以修改关闭的端口号以及关闭命令,如下:

    <Server port="8555" shutdown="GOTODIE">

     

    (2)隐藏版本信息;防止黑客针对某一版本进行攻击,需要将版本信息隐藏起来。

    版本信息在tocat的lib目录下的catalina.jar里的org.apache.catalina.util里的ServerInfo.properties文件里。

    catalina.jar\org\apache\catalina\util\ServerInfo.properties

    server.info=Apache Tomcat/8.5.31改为NO VERSION

    <!--此处有图片-->

    (3)禁用Tomcat管理页面;

    防止黑客通过tomcat管理界面对tomcat进行攻击。

    方法:将Root文件重命名,重新建一个空的Root文件。

    (4)自定义错误页面;在webapps/ROOT目录下,新建一个error.html错误页面,然后配置一下conf/web.xml

    <!--此处有图片-->

    (5)AJP端口管理;

    (6)启用cookie的HttpOnly;



    01:12
    看视频
  • tomcat安全配置:

    1、初始化配置:

    (1)关闭服务器端口;如果不改关闭端口或关闭命令,别人会通过端口号和命令关闭服务,出于安全考虑,需要改变端口号或关闭命令。

    cmd命令窗口:telnet 127.0.0.1 8005   回车,然后输入SHUTDOWN命令关闭服务

    <!--此处有图片-->为了安全起见,可以修改关闭的端口号以及关闭命令,如下:

    <Server port="8555" shutdown="GOTODIE">

     

    (2)隐藏版本信息;防止黑客针对某一版本进行攻击,需要将版本信息隐藏起来。

    版本信息在tocat的lib目录下的catalina.jar里的org.apache.catalina.util里的ServerInfo.properties文件里。

    catalina.jar\org\apache\catalina\util\ServerInfo.properties

    server.info=Apache Tomcat/8.5.31改为NO VERSION

    <!--此处有图片-->

    (3)禁用Tomcat管理页面;

    防止黑客通过tomcat管理界面对tomcat进行攻击。

    方法:将Root文件重命名,重新建一个空的Root文件。

    (4)自定义错误页面;

    (5)AJP端口管理;

    (6)启用cookie的HttpOnly;


  • tomcat安全配置:

    1、初始化配置:

    (1)关闭服务器端口;如果不改关闭端口或关闭命令,别人会通过端口号和命令关闭服务,出于安全考虑,需要改变端口号或关闭命令。

    cmd命令窗口:telnet 127.0.0.1 8005   回车,然后输入SHUTDOWN命令关闭服务

    <!--此处有图片-->为了安全起见,可以修改关闭的端口号以及关闭命令,如下:

    <Server port="8555" shutdown="GOTODIE">


    (2)隐藏版本信息;

    防止黑客针对某一版本进行攻击,需要将版本信息隐藏起来。

    版本信息在tocat的lib目录下的catalina.jar里的org.apache.catalina.util里的ServerInfo.properties文件里。

    catalina.jar\org\apache\catalina\util\ServerInfo.properties

    server.info=Apache Tomcat/8.5.31改为NO VERSION

    <!--此处有图片-->

    (3)禁用Tomcat管理页面;

    (4)自定义错误页面;

    (5)AJP端口管理;

    (6)启用cookie的HttpOnly;



    01:12
    看视频
  • tomcat安全配置:

    1、初始化配置:

    (1)关闭服务器端口;如果不改关闭端口或关闭命令,别人会通过端口号和命令关闭服务,出于安全考虑,需要改变端口号或关闭命令。

    cmd命令窗口:telnet 127.0.0.1 8005   回车,然后输入SHUTDOWN命令关闭服务

    <!--此处有图片-->为了安全起见,可以修改关闭的端口号以及关闭命令,如下:

    <Server port="8555" shutdown="GOTODIE">


    (2)隐藏版本信息;

    (3)禁用Tomcat管理页面;

    (4)自定义错误页面;

    (5)AJP端口管理;

    (6)启用cookie的HttpOnly;


  • 多域名访问:提高资源利用率

    如何配置:基于ip地址或者基于端口的虚拟主机

    基于ip地址配置虚拟主机:

    <!--此处有图片-->

    <Host name="主机名"  appBase="项目地址" unpackWARs="true" autoDeploy="true">

    <Context path="" docBase="." debug="0" />

    </Host>

    同时配置操作系统host文件: 127.0.0.1 主机名


    基于端口配置虚拟主机:

    <!--此处有图片-->

    tomcat的server.xml文件也可以配置多个虚拟主机,

    相同域名不同端口可以通过增加service节点实现,

    不同的域名则可以同过增加host节点实现


  • 1.内存配置;jdk配置; 2.https配置;证书生成与配置; 3.多host配置,多端口配置; 4.单点cas运用,分客户端和服务端,支持数据库用户验证; 5.安全配置:修改8005关闭命令;注释ajp;使用非root启动; 6.开始Access日志; 7.支持外部webapps部署; 8.缓存优化:nginx、gzip压缩等
  • 修改内存在catalina.sh的第二行。
    04:14
    看视频
  • 单点登录方式:

    (1)以Cookie作为凭证媒介;

    (2)通过jsop实现;

    (3)通过页面重定向的方式实现;

    (4)使用第三方插件实现,如CAS

    CAS:开源的企业级单点登录解决方案。

    开源的企业级单点登录解决方案

      从结构上:CAS Server和CAS Client

      CAS Server:需要独立部署,负责对用户的认证工作。

      CAS Client:负责对客户端的受保护的资源的访问请求


    02:45
    看视频
  • 1.单点登录的概念

      单点登录(Single Sign On),简称为SSO,是目前比较流行的企业服务整合的解决方案之一

      SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统

    <!--此处有图片-->

    2.CAS

      开源的企业级单点登录解决方案

      从结构上:CAS Server和CAS Client

      CAS Server:需要独立部署,负责对用户的认证工作。

      CAS Client:负责对客户端的受保护的资源的访问请求

    <!--此处有图片-->



    01:12
    看视频
  • Tomcat实现web管理

     

    1、管理界面功能简述

     

    2、使用tomcat管理界面发布项目

     

    1. Server Status: 服务器的状态

    2. Manager App: 应用管理

    3. Host Manager: 主机管理

    修改默认发布的最大值配置项

      地址:webapps/manager/WEB-INF/web.xml     50行左右

      max-file-size     

      max-request-size

     

    更改web.xml配置文件下的

    <multipart-config>

    <max-file-size>524288000</max-file-size>

    <max-request-size>524288000</max-request-size>

    <file-size-threshold>0</fiile-size-threshold>

     

    </multipart-config>


    07:17
    看视频
  • 在Tomcat的conf/context.xml中配置
    在Tomcat\apache-tomcat-6.0.33\conf目录下的context.xml文件中配置默认值如下:

    <?xml version='1.0' encoding='utf-8'?>
    <Context>
        <WatchedResource>WEB-INF/web.xml</WatchedResource>
    </Context>

    配置连接池:

    <?xml version='1.0' encoding='utf-8'?>

    <Context>
        <WatchedResource>WEB-INF/web.xml</WatchedResource>
    
        <!--配置oracle数据库的连接池-->
        <Resource name="jdbc/oracleds"
            author="Container"
            type="javax.sql.DataSource"
            maxActive="100"
            maxIdle="30"
            maxWait="10000"
            username="scott"
            password="tiger"
            driverClassName="oracle.jdbc.dirver.OracleDriver"
            url="jdbc:oracle:thin:@127.0.0.1:1521:ora9" />
    
        <!--配置mysql数据库的连接池, 
            需要做的额外步骤是将mysql的Java驱动类放到tomcat的lib目录下        
            maxIdle 连接池中最多可空闲maxIdle个连接 
            minIdle 连接池中最少空闲maxIdle个连接 
            initialSize 初始化连接数目 
            maxWait 连接池中连接用完时,新的请求等待时间,毫秒 
            username 数据库用户名
            password 数据库密码
            -->
        <Resource name="jdbc/mysqlds" 
            auth="Container" 
            type="javax.sql.DataSource" 
            username="root" 
            password="root" 
            maxIdle="30" 
            maxWait="10000" 
            maxActive="100"
            driverClassName="com.mysql.jdbc.Driver"
            url="jdbc:mysql://127.0.0.1:3306/db_blog" />
    
    </Context>

    配置好后需要注意的两个步骤

    1.将对应数据库的驱动类放到tomcat的lib目录西安

    2.重新启动tomcat服务器,让配置生效

    在web应用程序的web.xml中设置数据源参考,如下:

    在<web-app></web-app>节点中加入下面内容

    <resource-ref>

          <description>mysql数据库连接池</description>
          <!-- 参考数据源名字,同Tomcat中配置的Resource节点中name属性值"jdbc/mysqlds"一致 -->
          <res-ref-name>jdbc/mysqlds</res-ref-name>
          <!-- 资源类型 -->
          <res-type>javax.sql.DataSource</res-type>
          <res-auth>Container</res-auth>
          <res-sharing-scope>Shareable</res-sharing-scope>
    </resource-ref>


首页上一页1234567下一页尾页

举报

0/150
提交
取消
课程须知
需要具有Java Web基础,对Tomcat有初步的了解。
老师告诉你能学到什么?
1、Tomcat基础配置 2、Tomcat安全配置 3、Tomcat性能优化

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!