下载,解压tomcat、jdk

1、解压,链接tomcat、jdk

  1. tar xf jdk-8u161-linux-x64.tar.gz
  2. tar xf apache-tomcat-8.5..tar.gz
  3. mv jdk1..0_161/ /usr/local/
  4. ln -s /usr/local/jdk1..0_161 /usr/local/jdk
  5. mv apache-tomcat-8.5. /usr/local/
  6. ln -s /usr/local/apache-tomcat-8.5. /usr/local/tomcat

2、配置环境变量并使其生效

  1. # tail - /etc/profile
  2. export JAVA_HOME=/usr/local/jdk
  3. export CLASSPATH=.$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar
  4. export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
  5. export TOMCAT_HOME=/usr/local/tomcat
  6.  
  7. # source /etc/profile

3、赋予权限、修改ulimit

  1. chown -R tomcat.tomcat /usr/local/{jdk/,tomcat/}
    echo '*      -     nofile    65535'  >> /etc/security/limits.conf

4、启动tomcat

  1. su tomcat
  2.  
  3. /usr/local/tomcat/bin/startup.sh
  4. #备注:一定要切换到对应的tomcat用户里边启动,权限最小化
  5.  
  6. #查看启动结果
    $ netstat  -lnpt
    (Not all processes could be identified, non-owned process info
     will not be shown, you would have to be root to see it all.)
    Active Internet connections (only servers)
    Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name   
    tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      -                  
    tcp6       0      0 :::8080                 :::*                    LISTEN      4088/java          
    tcp6       0      0 :::22                   :::*                    LISTEN      -                  
    tcp6       0      0 :::8009                 :::*                    LISTEN      4088/java

5、tomcat配置文件的简单介绍

  1. <Connector port="" protocol="HTTP/1.1"
  2. connectionTimeout=""
  3. redirectPort="" />
  4. #连接器:首先这个8080是服务端口,后边http/1.1 是http的长连接,连接超时时间,毫秒。8443重定向端口
  5.  
  6. <Connector port="" protocol="AJP/1.3" redirectPort="" />
  7. #连接器:AJP的连接器,由于文档不多,不建议使用。
  8.  
  9. /usr/local/tomcat/webapps/ROOT
    #默认的tomcat的根文件位置。如果放到这个里边解压,默认是不需要添加url路径的:http://IP:端口
    #如果放到/usr/local/tomcat/webapps/ceshi  访问:http://IP:端口/ceshi

6、tomcat的重启

  1. ll /usr/local/tomcat/
  2. bin
  3. conf
  4. lib
  5. LICENSE
  6. logs
  7. NOTICE
  8. RELEASE-NOTES
  9. RUNNING.txt
  10. temp
  11. webapps
  12. work
  13.  
  14. #备注:生产环境下,如果重启tomcat建议清空 temp 和 work目录下的东西,
  15. #tomcat启动时会吧临时文件和工作文件放到temp和work文件夹下。建议清空再重启,否则可能发生非常奇怪的问题。
  16.  
  17. #重启tomcat
  18. /usr/local/tomcat/bin/shutdown.sh
  19. rm -rf /usr/local/tomcat/{temp/*,work/*}
  20. /usr/local/tomcat/bin/startup.sh

7、配置tomcat的gui

  1. $ tail - tomcat-users.xml
  2.  
  3. <<role rolename="manager-gui" />
  4. <role rolename="admin-gui" />
  5. <user username="tomcat" password="<password>" roles="manager-gui,admin-gui"/>
  6. </tomcat-users>
    #备注:密码一定要复杂。另外建议开启tomcat的状态页面,其余全部删除。状态页面可以很直观的看到tomcat的状态。zabbix比较慢
    #修改完之后重启tomcat

8、tomcat 安全管理规范

每个公司都有每个公司的管理制度以及对应的软件的安全规范条款。这里就引用网上同僚们的一些东西吧。

注意:可以参考原文链接地址

  1. Tomcat的安全
  2. 生产环境tomcat规范
  3.  
  4. .更改服务监听端口
  5. Tomcat 都是放在内网的,则针对 Tomcat 服务的监听地址都是内网地址
  6.  
  7. 标准配置:<Connector port="" server="webserver"/>
  8.  
  9. .telnet管理端口保护
  10. 修改默认的 管理端口不易猜测(大于1024),但要求端口配置在8000~8999之间
  11.  
  12. 修改SHUTDOWN命令为其他字符串
  13. 标准配置:<Server port="" shutdown="dangerous">
  14.  
  15. .AJP连接端口的保护
  16. 修改默认的ajp 8009端口为不易冲突(大于1024),但要求端口配置在8000~8999之间
  17.  
  18. 通过iptables规则限制ajp端口访问的权限仅为线上机器,目的在于防止线下测试流量被apachemod_jk转发至线上tomcat服务器
  19.  
  20. 标准配置:<Connector port="" protocol="AJP/1.3"/>
  21.  
  22. .禁用管理端
  23. 删除默认$CATALINA_HOME/conf/tomcat-users.xml文件,重启tomcat将会自动生成新的文件
  24.  
  25. 删除$CATALINA_HOME/webapps下载默认的所有目录和文件
  26.  
  27. tomcat应用根目录配置为tomcat安装目录以外的目录
  28.  
  29. 标准配置:
  30.  
  31. a.server.xml配置
  32. 一种直接修改Host节点信息,表示全局配置
  33.  
  34. <Host name="localhost" appBase="/data/www/tomcat_webapps" unpackWARs="true" autoDeploy="false"></Host>
  35.  
  36. 另一种直接在Host节点中新增Context节点,指定具体的项目
  37.  
  38. <Context path="" docBase="/usr/local/tomcat/webapps/jenkins" debug="" reloadable="false" crossContext="true">
  39. </Context>
  40.  
  41. b.在$CATALINA_HOME/conf/Catalina/locathost目录下新增文件 test##.xml
  42.  
  43. <Context displayName="test" docBase="/data/www/tomcat_webapps/test##20160506172651.war" reloadable="false" />
  44.  
  45. .隐藏Tomcat的版本信息
  46. 针对该信息的显示是由一个jar包控制的,该jar包存放在$CATALINA_HOME/lib目录下,名称为 catalina.jar,通过 jar xf 命令解压这个 jar 包会得到两个目录 META-INF org ,修改 org/apache/catalina/util/ServerInfo.properties 文件中的 serverinfo 字段来实现来更改我们tomcat的版本信息
  47.  
  48. $ cd $CATALINA_HOME/lib
  49. $ jar xf catalina.jar
  50. $ cat org/apache/catalina/util/ServerInfo.properties |grep -v '^$|#'
  51. $ mkdir -p org/apache/catalina/util
  52. $ vim ServerInfo.properties
  53. server.info=nolinux # 把这个值改成其它值就行了
  54.  
  55. 自定义错误页面:修改$CATALINA_HOME/conf/web.xml重定向 //500等错误到指定的错误页面
  56.  
  57. .降权启动
  58. Tomcat启动用户权限必须非root权限,尽量降低tomcat启动用户的目录访问权限,如需直接对外使用80端口,可通过普通账号启动后,配置iptables规则进行转发,为了防止 Tomcat 被植入 web shell 程序后,可以修改项目文件。要将 Tomcat 和项目的属主做分离,即便被破坏也无法创建和编辑项目文件
  59.  
  60. .文件列表访问控制
  61. $CATALINA_HOME/conf/web.xml文件中的default部分的listings的配置必须为false(默认),表示不列出文件列表
  62.  
  63. .访问限制
  64. 通过配置,限定访问的IP来源
  65.  
  66. 全局设置限定IP和域名访问:
  67.  
  68. <Host name="localhost" appBase="/data/www/tomcat_webapps" unpackWARs="true" autoDeploy="false">
  69. <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="192.168.1.10,192.168.1.30,192.168.2.*" deny=""/>
  70. <Valve className="org.apache.catalina.valves.RemoteHostValve" allow="www.test.com,*.test.com" deny=""/>
  71. </Host>
  72.  
  73. .脚本权限回收
  74. 控制CATALINAHOME/bin目录下的start.shcatalina.shshutdown.sh的可执行权限;
  75. chmod R CATALINA_HOME/bin/*
  76.  
  77. 10.访问日志格式规范
  78. 开启tomcat默认访问日志中Referer和User-Agent记录
  79.  
  80. 标准配置:
  81.  
  82. <Valve className="org.apache.catalina.valves.AccessLogValve"
  83. directory="logs" prefix="localhost_access_log"
  84. suffix=".txt" pattern="%h %l %u %t &quot;%r&quot; %s %b %{Referer}i %{User-Agent}i %D"
  85. resolveHosts="false" />
  86.  
  87. 11.Server header重写
  88. 在HTTP Connector配置中加入server的配置,server="chuck-server"
  89. <Connector port="8080" protocol="HTTP/1.1"
  90. connectionTimeout="20000"
  91. redirectPort="8443"
  92. server="lltest" />
  93.  
  94. # curl --head http://localhost:8080
  95.  
  96. Tomcat 安全管理规范

Tomcat 安全管理规范

未完待续!!!!!!!

Tomcat 部署及配置的更多相关文章

  1. springboot 通过 tomcat 部署的配置

    spring-boot 有一个主类,是可以直接 run,然后就可以访问了,但是如果我们想像传统的那种 web 项目一样部署在 tomcat 里,要怎么配置呢.我们一起来看下. pom.xml 里添加如 ...

  2. [转载]Tomcat部署与配置

    转载来源: http://ibash.cc/frontend/article/2/ 感觉挺好的  自己之前总是怕麻烦 其实是水平不够. 一句话介绍Tomcat Tomcat是一个免费的开源的Web应用 ...

  3. web项目脱离Eclipse在Tomcat部署并配置Eclipse调试

    简单来说,把WEB项目打成war包后放到webapps目录下启动tomcat便部署成功了,但是因为与Eclipse没有关联,故而无法Debug调试代码.这时在Tomcat的catalina.sh脚本里 ...

  4. JDK配置及tomcat部署

    JDK配置及tomcat部署 2017-09-30-17:54:03 个人原创博客,转载请注明出处,作者,否则依法追究责任,文中引用了一些百度经验的图片,特此注明. 一,配置JDK:1.8.0_66版 ...

  5. Tomcat安装、配置和部署笔记

    首先从Apache的官方网站(http://tomcat.apache.org/)下载Tomcat.有安装版和解压版两种,我个人喜欢用解压版. Tomcat安装(绿色版安装) 1.将下载的Tomcat ...

  6. Tomcat安装、配置和部署

    首先从Apache的官方网站(http://tomcat.apache.org/)下载Tomcat.有安装版和解压版两种,本文档介绍绿色版安装方法. 一.Tomcat安装(绿色版安装) 1.将下载的T ...

  7. ide的tomcat的部署和配置

    关于intellij ide的tomcat的部署和配置   1.下载zip版的Tomcat 7,并解压.下载地址 2.在IDEA中配置Tomcat 7 在idea中的Settings(Ctrl+Alt ...

  8. Tomcat 安装、配置与部署

    Tomcat的官方网站:http://tomcat.apache.org/,目前最新版本为7.0. Tomcat下载地址: 1.32位:http://mirrors.tuna.tsinghua.edu ...

  9. 企业级Tomcat部署配置

    1.1 Tomcat简介 Tomcat是Apache软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache.Sun和其他一些公司及个人 ...

随机推荐

  1. Docker记录-Docker部署记录

    1.Docker介绍 Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源. Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后 ...

  2. npm i 与 npm install之间的细小区别

    1.用npm i 安装的模块无法用npm uninstall卸载,需要用npm uninstall i命令 2.npm i 会帮助检测与当前node版本最匹配的npm包 版本号,并匹配出来相互依赖的n ...

  3. vue中computed和watch

    computed 计算属性 能够监听vue数据上的变化,页面上来就执行一次,每改变一次数据就又触发.在操作数据的时候,会派生出另一个事情 1.函数形式 computed:{ listenArr(){ ...

  4. Ajax和Json实现自动补全

    1.index.jsp <%@ page language="java" import="java.util.*" pageEncoding=" ...

  5. 什么是CMD

    cmd是command的缩写.命令提示符是在操作系统中,提示进行命令输入的一种工作提示符.在不同的操作系统环境下,命令提示符各不相同. 在windows环境下,命令行程序为cmd.exe,是一个32位 ...

  6. 四十二、Linux 线程——线程同步之条件变量之线程状态转换

    42.1 线程状态转换 42.1.1 状态转换图 42.1.2 一个线程计算,多个线程获取的案例 #include <stdio.h> #include <stdlib.h> ...

  7. MVC |分部视图 PartialView()

    介绍如何定义 其实它和普通视图没有多大区别,只是创建分部视图的时候视图里没有任何内容,你需要什么标签你自己加.第二就是分部视图不会执行_ViewStart.cshtml中的内容) 控制器 Partia ...

  8. 【LeetCode】89.Gary Code

    Problem: The gray code is a binary numeral system where two successive values differ in only one bit ...

  9. 【bzoj 4764】弹飞大爷

    Description 自从WC退役以来,大爷是越来越懒惰了.为了帮助他活动筋骨,也是受到了弹飞绵羊一题的启发,机房的小伙伴们决定齐心合力构造一个下面这样的序列.这个序列共有N项,每项都代表了一个小伙 ...

  10. (9)EvenOddJump

    一.问题描述 一只青蛙从数组(A)的每一个元素向数组尾部跳动.跳动规则如下: 当奇数跳的时候,就是第1.3.5.7....次进行移动时候,移动规则A[i] <= A[j],  并且A[j] = ...