生产环境下我们不应该使用root用户开启tomcat服务,所以为了安全起见,我们创建一个用户tomcat

useradd tomcat

passwd tomcat(密码也设为tomcat)

编辑tomcat目录下的conf里的tomcat-users.xml文件

在tomcat-users里面增加以下内容

  1. <role rolename="manager"/>
  2. <role rolename="manager-gui"/>
  3. <role rolename="admin"/>
  4. <role rolename="admin-gui"/>
  5. <user username="tomcat" password="tomcat" roles="admin-gui,admin,manager-gui,manager"/>



点击server status进入,输入用户名tomcat和密码tomcat

可以看到有个ajp



默认的tomat的模式是bio,上图是我已经修改模式为nio了的效果图,修改方法为

vi conf/service.xml,找到connector,就是以下内容

  1. <Connector port="8080" protocol="HTTP/1.1"
  2. connectionTimeout="20000"
  3. redirectPort="8443" />

修改一下协议内容,HTTP/1.1改为

org.apache.coyote.http11.Http11NioProtocol

此时刷新页面

一般情况下我们使用的是nginx+tomat,而不是ajp协议,禁用该协议有利于提升性能,方法为vi conf/service.xml注释掉协议为AJP的那行

  1. <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

重启服务后,效果如下

  1. [root@localhost bin]# cd - #回到上一个工作目录
  2. /usr/local/src/apache-tomcat-7.0.78/conf
  3. [root@localhost conf]# vi server.xml
  4. [root@localhost conf]# cd -
  5. /usr/local/src/apache-tomcat-7.0.78/bin
  6. [root@localhost bin]# ./shutdown.sh ;./startup.sh #依次执行,好像没有重启的脚本,所以就关闭再打开了
  7. Using CATALINA_BASE: /usr/local/src/apache-tomcat-7.0.78
  8. Using CATALINA_HOME: /usr/local/src/apache-tomcat-7.0.78
  9. Using CATALINA_TMPDIR: /usr/local/src/apache-tomcat-7.0.78/temp
  10. Using JRE_HOME: /usr
  11. Using CLASSPATH: /usr/local/src/apache-tomcat-7.0.78/bin/bootstrap.jar:/usr/local/src/apache-tomcat-7.0.78/bin/tomcat-juli.jar
  12. Using CATALINA_BASE: /usr/local/src/apache-tomcat-7.0.78
  13. Using CATALINA_HOME: /usr/local/src/apache-tomcat-7.0.78
  14. Using CATALINA_TMPDIR: /usr/local/src/apache-tomcat-7.0.78/temp
  15. Using JRE_HOME: /usr
  16. Using CLASSPATH: /usr/local/src/apache-tomcat-7.0.78/bin/bootstrap.jar:/usr/local/src/apache-tomcat-7.0.78/bin/tomcat-juli.jar
  17. Tomcat started.
  18. [root@localhost bin]#

还有一个是增加线程池,不过我没有把这个配置成功,所以这里就不说了。

tomcat7简单优化的更多相关文章

  1. 一次千万级别的SQL查询简单优化体验

    背景:从两张有关联的表查询数据,A表数据量1400万,B表数据量8000万.A与B通过ID逻辑关联,没有实际的外键.B表是后来扩展出来的. 问题:根据某个ID查询时超时,运行时跑不出结果. 原因:使用 ...

  2. 双数组trie树的基本构造及简单优化

    一 基本构造 Trie树是搜索树的一种,来自英文单词"Retrieval"的简写,可以建立有效的数据检索组织结构,是中文匹配分词算法中词典的一种常见实现.它本质上是一个确定的有限状 ...

  3. [mysql] 2进制安装和简单优化

    ##################################mysql 2进制安装和简单优化################################################## ...

  4. 封装ajax,让调用变得简单优化

    思考一下: 通常我们在使用ajax来发送接口请求时,每一次都会调用ajax固定的元素,比如data.url.method.success.error等.那么我们想一下能不能先把ajax封装起来,在每次 ...

  5. linux简单优化

    1.简单优化 #关闭firewalld,selinux,NetworkManager systemctl(管理服务的命令) stop(关服务) firewalld (服务名称,d是demo的意思) s ...

  6. mysql的简单优化【简单易学】

    1.选取最适用的字段属性: 表字段尽量设小,不要给数据库增加没必要的空间:如:值为'01'.'02',给char(2)即可: 2.使用连接(JOIN)来代替子查询(Sub-Queries): 使用jo ...

  7. mysql简单优化思路

    mysql简单优化思路 作为开发人员,数据库知识掌握的可能不是很深入,但是一些基本的技能还是要有时间学习一下的.作为一个数据库菜鸟,厚着脸皮来总结一下 mysql 的基本的不能再基本的优化方法. 为了 ...

  8. mysql之优化器、执行计划、简单优化

    mysql之优化器.执行计划.简单优化 2018-12-12 15:11 烟雨楼人 阅读(794) 评论(0) 编辑 收藏 引用连接: https://blog.csdn.net/DrDanger/a ...

  9. 【jQuery基础学习】11 jQuery性能简单优化

    关于性能优化 合适的选择器 $("#id")会直接调用底层方法,所以这是最快的.如果这样不能直接找到,也可以用find方法继续查找 $("p")标签选择器也是直 ...

随机推荐

  1. C++各种类继承关系的内存布局

    body, table{font-family: 微软雅黑; font-size: 10pt} table{border-collapse: collapse; border: solid gray; ...

  2. ng-table

    需要的文件: angular.js ng-table.js ng-table.css bootrasp.css 注入依赖: var app = angular.module('app', [ 'ngT ...

  3. 如何查看.java文件的字节码(原码)

    出自于:https://www.cnblogs.com/tomasman/p/6751751.html 直接了解foreach底层有些困难,我们需要从更简单的例子着手.下面上一个简单例子: 1 pub ...

  4. SharePoint Framework 企业向导(八)

    博客地址:http://blog.csdn.net/FoxDave 构建关于SPFx自定义的计划 在SPFx引入的时候,你就需要对它进行规划了.规划要从介绍SPFx解决方案使用的新的技术栈开始.开 ...

  5. 分布式ID设计方案

    分布式ID的定义: 全局唯一 有序性 有意义 高可用 紧凑性 序列号的可预测性 方案1:使用数据库递增的顺序 最常见的方式.利用数据库,全数据库唯一. 优点: 1)简单,代码方便,性能可以接受. 2) ...

  6. <YARN><MRv2><Spark on YARN>

    MRv1 VS MRv2 MRv1: - JobTracker: 资源管理 & 作业控制- 每个作业由一个JobInProgress控制,每个任务由一个TaskInProgress控制.由于每 ...

  7. 百杂讲堂之为什么32位系统只能操作4g内存

    百杂讲堂之为什么32位系统只能操作4g内存 计算机内存中很多的单元,每一个单元就是一个字节,一个字节有8位.每一个单元有两种状态:0和1. 所以 两个单元就有4个组合: 3个单元就有8个组合: 依次类 ...

  8. 2019-03-11-day009-函数定义

    什么是函数 函数就是将许多冗余的代码进行整合统一调用的内存地址 函数怎么定义 def make(): print('掏出手机') print('打开微信') print('摇一摇') print('聊 ...

  9. three probing way of openadress hash

  10. Python 默认值字典

    from collections import defaultdict # 默认值字典 dd = defaultdict(lambda: "胡辣汤") # callable 可调用 ...