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

Tomcat服务配置与性能优化

黑洞大仙 全栈工程师
难度初级
时长 2小时23分
学习人数
综合评分9.17
30人评价 查看评价
9.1 内容实用
9.5 简洁易懂
8.9 逻辑清晰
  • linux下的jdk和tomcat的安装与配置

    查看全部
  • 优化配置

    缓存优化(nginx、gzip)

    运动模式

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

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

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


    查看全部
    1 采集 收起 来源:Tomcat性能优化

    2020-04-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" />


    查看全部
    0 采集 收起 来源:tomcat安全规范

    2020-04-01

  • Cookies

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

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

    3、XSS-跨站脚本攻击

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

    查看全部
  • tomcat安全配置:

    1、初始化配置:

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

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

    http://img1.sycdn.imooc.com//5e79f92f000131aa10150172.jpg为了安全起见,可以修改关闭的端口号以及关闭命令,如下:

    <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

    spacer.gif

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

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

     

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

    spacer.gif

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

    conf/server.xml文件如下:

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

    (6)启用cookie的HttpOnly;


    查看全部
    0 采集 收起 来源:AJP协议

    2020-03-24

  • tomcat安全配置:

    1、初始化配置:

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

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

    http://img1.sycdn.imooc.com//5e79f92f000131aa10150172.jpg为了安全起见,可以修改关闭的端口号以及关闭命令,如下:

    <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

    spacer.gif

    (3)禁用Tomcat管理页面;

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

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

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

    http://img1.sycdn.imooc.com//5e79fc87000149ef06890440.jpg

    (5)AJP端口管理;

    (6)启用cookie的HttpOnly;



    查看全部
  • tomcat安全配置:

    1、初始化配置:

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

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

    http://img1.sycdn.imooc.com//5e79f92f000131aa10150172.jpg为了安全起见,可以修改关闭的端口号以及关闭命令,如下:

    <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

    spacer.gif

    (3)禁用Tomcat管理页面;

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

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

    (4)自定义错误页面;

    (5)AJP端口管理;

    (6)启用cookie的HttpOnly;


    查看全部
    0 采集 收起 来源:禁用管理界面

    2020-03-24

  • tomcat安全配置:

    1、初始化配置:

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

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

    http://img1.sycdn.imooc.com//5e79f92f000131aa10150172.jpg为了安全起见,可以修改关闭的端口号以及关闭命令,如下:

    <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

    http://img1.sycdn.imooc.com//5e79faf300012f5304860123.jpg

    (3)禁用Tomcat管理页面;

    (4)自定义错误页面;

    (5)AJP端口管理;

    (6)启用cookie的HttpOnly;



    查看全部
    0 采集 收起 来源:修改版本号

    2020-03-24

  • tomcat安全配置:

    1、初始化配置:

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

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

    http://img1.sycdn.imooc.com//5e79f92f000131aa10150172.jpg为了安全起见,可以修改关闭的端口号以及关闭命令,如下:

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


    (2)隐藏版本信息;

    (3)禁用Tomcat管理页面;

    (4)自定义错误页面;

    (5)AJP端口管理;

    (6)启用cookie的HttpOnly;


    查看全部
  • 多域名访问:提高资源利用率

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

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

    http://img1.sycdn.imooc.com//5e79f4b900012a4e09860276.jpg

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

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

    </Host>

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


    基于端口配置虚拟主机:

    http://img1.sycdn.imooc.com//5e79f6e20001ea0710150237.jpg

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

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

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


    查看全部
    0 采集 收起 来源:多域名访问

    2020-03-24

  • 单点登录方式:

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

    (2)通过jsop实现;

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

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

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

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

      从结构上:CAS Server和CAS Client

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

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


    查看全部
    0 采集 收起 来源:单点登录1

    2020-03-18

  • 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>


    查看全部
    0 采集 收起 来源:web管理_1

    2020-03-18

  • 在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>


    查看全部
  • web.xml配置数据库

    查看全部
  • 1.修改内存的目的

    日常开发中,开发项目比较大的时候依赖的jar包比较多,并且在应用服务器启动的时候,会将项目引用的所有的类依次全部加载到内存当中,java的逻辑内存模式分为

    堆内存(存储类的实例,数组、引用数据类型也就是用new生成的对象)、

    栈内存(存储局部变量比如方法参数)、

    静态内存区(持久区,该区内存不会被gc回收,存常量、静态变量、类的源数据:方法、属性什么的)

    http://img1.sycdn.imooc.com//5e6f6a250001aa4006190425.jpg

    2.在开发当中经常遇到的内存溢出的异常

    • OutOfMemoryErroe:Java heap space异常------>堆内存满了

      JVM中堆内存的大小默认使用的最小内存是我们物理内存的1/64,最大的使用我们物理内存的1/4,我们通过调整JVM中的初始内存和最大内存来改变我们使用内存的限制

    • OutOfMemoryError:PermGen space异常-------->静态内存区满了

      通常是因为加载的类太多导致的,jdk8以下的需要修改两个参数限制静态区最小和最大内存范围,,jdk8改变了内存模型,将类定义存放到了源数据空间,而源数据空间与堆内存共享的是同一块内存区域,所以在jdk8版本以后就不会再出现PermGen space异常了。

    • StackOverflowError异常---------->栈内存溢出

      通常是由于死循环或无线递归导致的

      http://img1.sycdn.imooc.com//5e6f6ac80001f91707370445.jpg

    3.配置内存参数

    网上有两种方式,一种是在start.bat,一种是在catalina.bat中

    bin/catalina编辑:配到第2行/192行都行

     JAVA_OPTS=“-server -Xms512m -Xmx1024m

     -XX:MetaspaceSize=128m  -XX:MaxMetaspaceSize=256m ”

    说明:server:是指虚拟机的运行模式,配置为server时,在使用多个CPU时,性能可以得到更好的发挥

    -Xms:java heap初始大小 ,默认为物理内存的1/64,最大不要超过物理内存的80%,也叫堆内存

    -Xmx:java heap的最大值,建议设置为物理内存的一半,不要超过实际的物理内存

    MetaspaceSize:初始源空间的值,默认21m,

    MaxMetaspaceSize:最大源空间的值,默认无上限

    虚拟机的堆大小决定了虚拟机花费在数据垃圾上的时间和频率,调整虚拟机的堆大小目的是最小化垃圾回收的时间,一般用物理内存的80%作为堆内存的大小


    查看全部
    0 采集 收起 来源:修改内存

    2020-03-16

举报

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

微信扫码,参与3人拼团

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

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