• tomcat总结笔记


    Tomcat

    1、什么是tomcat?

    Tomcat是用于发布和解析JSP(Java Server Page)网页(基于JAVA语言开发的代码),将Tomcat称为JAVA容器,Tomcat软件本身基于JAVA语言开发。

    端口号:8080

    主配置文件:/usr/local/tomcat/conf/server.xml

    三个端口:

    ​ 8080 – 默认tomcat访问端口

    ​ 8005 – 用于关闭tomcat的(SHUTDOWN 必须要大写,小写不管用)

    8009 – AJP端口 用于Apache和Tomcat内部通讯端口

    2、rpm安装jre环境

    # rpm -ivh jdk-8u301-linux-x64.rpm
    在/etc/profile下写入
    export JAVA_HOME=/usr/java/jdk1.8.0_301-amd64    #这里安装路径自动定位在这里
    export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/fre/lib
    export PATH=$JAVA_HOME/bin:$JAVA_HMOE/jre/bin:$PATH
    [root@hd2 ~]# source /etc/profile   
    #查看java版本
    [root@hd2 ~]# java -version  
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    3、源码安装jdk环境

    1、安装JDK—源码安装

    1、系统环境说明
    # cat /etc/redhat-release   系统信息 
    # uname -a 查看系统信息
    # getenforce 
    # systemctl status firewalld.service
    2 、安装 JDK
    # mkdir /usr/local/java 安装工作目录
    # tar xzf jdk-8u60-linux-x64.tar.gz 
    # mv jdk1.8.0_192 /usr/local/java/jdk	
    # 设置环境变量
    # vim /etc/profile
    export JAVA_HOME=/usr/local/java/jdk   #指定java安装目录
    export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH    #用于指定java系统查找命令的路径
    export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar  #类的路径,在编译运行java程序时,如果有调用到其他类的时候,在classpath中寻找需要的类。
    # source /etc/profile  #让环境变量生效
    2、测试jdk是否安装成功
    # java -version
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    4、安装tomcat --源码安装

    # tar xvf apache-tomcat-9.0.11.tar.gz
    # mkdir /usr/local/tomcat
    #  mv apache-tomcat-9.0.11 /usr/local/tomcat
    # 设置环境变量
    # echo 'export TOMCAT_HOME=/usr/local/tomcat'>>/etc/profile
    # source /etc/profile
    # chown -R root.root /usr/java/jdk1.8.0_301-amd64/ /usr/local/tomcat/  # 注意授权,统一权限
    2、检查tomcat是否安装成功
    # /usr/local/tomcat/apache-tomcat-9.0.11/bin/startup.sh
    # netstat -naput | grep tomcat(8080)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    5、相关目录文件

    *├── bin              #存放tomcat管理脚本 (操作命令)
    *├── conf             # tomcat 配置文件
    ├── lib              # web应用调用的jar包存放路径
    ├── LICENSE
    *├── logs             # tomcat 日志存放目录,catalina.out 为主要输出日志
    ├── NOTICE
    ├── RELEASE-NOTES
    ├── RUNNING.txt
    ├── temp             # 存放临时文件
    *├── webapps          # web程序存放目录
    └── work             # 存放编译产生的.java 与 .class文件
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    webapps
    ├── docs            # tomcat 帮助文档
    ├── examples       # web应用实例
    ├── host-manager  # 主机管理
    ├── manager         # 管理
    └── ROOT             # 默认站点根目录
    
    • 1
    • 2
    • 3
    • 4
    • 5
    Tomcat 配置文件目录介绍(conf)
    ├── Catalina
    ├── catalina.policy     配置tomcat对文件系统中目录或文件的读、写执行等权限,及对一些内存,session等的管理权限
    ├── catalina.properties   配置tomcat的classpath等
    ├── context.xml           tomcat的默认context容器
    ├── logging.properties      配置tomcat的日志输出方式
    ├── logs
    *├── server.xml           # tomcat 主配置文件
    ├── server.xml.bak
    ├── server.xml.bak2
    *├── tomcat-users.xml     # tomcat 管理用户配置文件
    ├── tomcat-users.xsd
    └── web.xml              tomcat的应用程序的部署描述符文件
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    tomcat的相关管理命令在$prefix/bin目录下

    /usr/local/tomcat/bin

    catalina.sh 主命令脚本
    configtest.sh 检测配置文件
    shutdown.sh 关闭
    startup.sh 启动
    version.sh 查看版本
    netstat -naput | grep 8080  查看tomcat
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    实战1、:配置nginx动静分离

    192.168.1.12 -- Tomcat1 & Tomcat2
    192.168.1.11 -- Nginx
    多实例
    [root@hd2 ~]# mv /usr/local/tomcat /usr/local/tomcat1
    [root@hd2 ~]# cp -a /usr/local/tomcat1/ /usr/local/tomcat2
    主配置文件
    [root@hd2 ~]# vim /usr/local/tomcat2/apache-tomcat-9.0.11/conf/server.xml
    
        
    改为
        
    
        
    改为
        
    开启两个tomcat
    [root@hd2 ~]# /usr/local/tomcat1/apache-tomcat-9.0.11/bin/startup.sh
    Tomcat started.
    [root@hd2 ~]#  /usr/local/tomcat2/apache-tomcat-9.0.11/bin/startup.sh
    Tomcat started.
    查看
    [root@hd2 ~]# ps -ef | grep tomcat
    tomcat默认访问目录
    /usr/local/tomcat2/webapps下 ROOT目录
    建立index.jsp测试代码
    
    
    

    JSP Test Page tomcat2

    <%=new java.util.Date()%> 安装Nginx 并创建虚拟主机 [root@hd1~]# wget http://www.nginx.org/download/nginx-1.14.2.tar.gz [root@hd1 ~]# yum -y install openssl-devel [root@hd1 ~]# useradd www [root@hd1 ~]# tar -xvf nginx-1.14.2.tar.gz [root@hd1 ~]# cd nginx-1.14.2 [root@hd1 ~]# ./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_stub_status_module --with-http_ssl_module [root@Hd2-LB nginx-1.14.2]#make && make install 修改配置文件,创建虚拟主机 [root@hd1 ~]# cd /usr/local/nginx/conf/ [root@hd1 ~]# mv nginx.conf nginx.conf.bak [root@hd1 ~]# egrep -v "#|^$" nginx.conf.bak > nginx.conf [root@hd1 ~]# vim nginx.conf worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; #这是我们自己添加的一个子配置文件路径 include /usr/local/domain/*; } [root@hd1 ~]# mkdir /usr/local/domain [root@hd1 ~]# vim /usr/local/domain/bbs.a.conf upstream tomcat_web { server 192.168.1.12:8080 weight=1 max_fails=2 fail_timeout=15; server 192.168.1.12:8081 weight=1 max_fails=2 fail_timeout=15; } server { listen 80; server_name bbs.a.com; location / { root html; index index.html index.htm; proxy_set_header Host $host; proxy_pass http://tomcat_web; } location ~* .*\.(html|htm|js|png|jpg|gif|css|jpeg|txt|gz|bz2|zip|bmp|doc|xls|docx)$ { root /var/www/html; expires 30d; } } #location ~* 表示不区分大小写匹配 .*\.(html|htm)$ 正则表达式表示以.html或htm结尾的所有网页 启动nginx [root@hd1 ~]# /usr/local/nginx/sbin/nginx [root@hd1 ~]# mkdir /var/www/html -p [root@hd1 ~]# cd /var/www/html [root@hd1 ~]# echo "wo shi nginx web" >index.html 重启tomcat [root@hd2 ~]# /usr/local/tomcat1/bin/shutdown.sh [root@hd2 ~]# /usr/local/tomcat1/bin/startup.sh [root@hd2 ~]# /usr/local/tomcat2/bin/shutdown.sh [root@hd2 ~]# /usr/local/tomcat2/bin/startup.sh 测试一下负载均衡集群 这里的ip是nginx的ip [root@hd1 ~]# curl 192.168.8.139/index.jsp

    JSP Test Page tomcat1

    Thu Jul 29 21:47:01 CST 2021 [root@hd1 ~]# curl 192.168.8.139/index.html wo shi nginx web
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86
    • 87
    • 88
    • 89
    • 90
    • 91
    • 92
    • 93
    • 94
    • 95
    • 96
    • 97
    • 98
    • 99
    • 100
    • 101
    • 102
    • 103
    • 104
    • 105

    实战2、配置基于tomcat的虚拟主机配置

    Tomcat配置文件,一对Host标签就是一个虚拟主机,即相当于一个nginx中的server模块
    基于tomcat1的多虚拟主机配置  两个网站分别是:www.a.com 和www.b.com
    #autoDeploy=true 表示自动部署(jvm)
    #unpackWARs=true  表示自动解压war包
    #"表示双引号
    
    [root@hd2 ~]# vim /usr/local/tomcat1/conf/server.xml
         
         
          
    
           
         
             
    #日志格式对比(重要)
    含义   	tomcat	                nginx
    客户端ip地址	%h	                $remote_addr
    时间	      %t	              $time_local
    请求	      %r	              $request
    状态码	     %S  	              $status
    资源大小	%b	                 $body_bytes_sent
    跳转	 %{Referer}i	          $http_referer
    客户端	%{User-Agent}i	          $http_user_agent
    真实客户端ip	%{X-Forwarded-For}	$http_x_forwarded_for
    
    配置两个虚拟站点的环境
    [root@hd2 ]# cd /usr/local/tomcat1/webapps/
    [root@hd2 webapps]# mkdir a/ROOT b/ROOT -p
    [root@Hd2 webapps]# echo "wo shi t a" >a/ROOT/index.html
    [root@Hd2 webapps]# echo "wo shi t b" >b/ROOT/index.html
    [root@Hd2 webapps]# /usr/local/tomcat1/bin/shutdown.sh 
    [root@Hd2 webapps]# /usr/local/tomcat1/bin/startup.sh
    配置windows主机的hosts文件设置内容如下:
    /windows/system32/drivers/etc/hosts
    192.168.0.12 www.a.com www.b.com
    测试
    curl 192.168.8.138:8080
    curl www.a.com:8080
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44

    实战3、配置jforum论坛部署

    #将war包上传到/root目录之下
    [root@hd2 ROOT]# pwd
    /usr/local/tomcat1/webapps/a/ROOT 
    [root@hd2 ROOT]# mv /root/jforum-2.7.0.war  . 
    [root@hd2 ROOT]#  jar xf jforum-2.6.2.war
    
    重启tomcat
    [root@hd2 ~]#  /usr/local/tomcat1/bin/shutdown.sh
    [root@hd2 ~]#/usr/local/tomcat1/bin/startup.sh
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    配置tomcat服务启动脚本

    tomcat提供了方便的启动命令脚本,但是却没有提供服务器中经常管理使用的service脚本。可以自行编写服务管理脚
    本
    1.编辑启动脚本,生成tomcat.pid
    # cd /usr/local/tomcat1/apache-tomcat-9.0.11/bin/
    # vim catalina.sh
    137gg  跳转到137行
    在PRGDIR下面添加
    CATALINA_PID=/var/run/tomcat.pid
    2.
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    基于域名访问的host配置

    1、建立项目目录并写入测试文件
    # cd /usr/local/tomcat/webapps/
    # mkdir devops/ROOT -p
    # cd /devops/ROOT
    # touch index.html
    # echo "this is tomcat.devops.com"
    2、编辑/usr/local/tomcat/conf/server.xml
    # vim /usr/local/tomcat/conf/server.xml
    添加
    
    
    name可以写成域名
    
    
    3、检测配置并重启
    # service tomcat configtest
    # service tomcat restart
    4、访问主机解析域名
    # vim /etc/hosts
    192.168.8.138 tomcat.devops.com
    5、测试
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    服务器状态查看

    1.去掉访问ip限制

    vim /usr/local/tomcat1/apache-tomcat-9.0.11/webapps/manager/META-INF/context.xml

    注释掉

    2、创建用户和密码开启访问权限

    vim /usr/local/tomcat/conf/tomcat-users.xml

    加入

    二进制升级

    TERM, INT(快速退出,当前的请求不执行完成就退出) -s stop
    QUIT (优雅退出,执行完当前的请求后退出)  -s quit
    HUP (重新加载配置文件,用新的配置文件启动新worker进程,并优雅的关闭旧的worker进程) -s reload
    USR1 (重新打开日志文件)  -s reopen
    USR2 (平滑的升级nginx二进制文件  拉起一个新的主进程  旧主进程不停止)
    WINCH (优雅的关闭worker进程)
    
    1、nginx的升级
    # ps -ef | grep 80(nginx)
    # kill -USR2 nginx主进程号   平滑的启动一个进程 升级操作
    # kill -WINCH nginx子进程号 优雅的关闭子进程
    # kill -QUIT nginx主进程    优雅的关闭主进程
    #修改路由
    echo "1" >/proc/sys/net/ipv4/ip forward
    
    ①编译安装新版本
    # shell > tar xvf nginx-1.16.0.tar.gz
    # shell > cd nginx-1.16.0
    # shell > ./configure  --prefix=/usr/local/nginx --user=www --group=www --with-http_ssl_module  --with-http_stub_status_module --with-http_realip_module
    # shell > make && make install
    ②新旧版本同时运行
    # shell > kill -USR2 主进程号
    ③停止掉旧进程
    # shell > kill -WINCH 旧的工作进程号
    # shell > kill -QUIT 旧的主进程号
    在nginx中,默认提供了平滑升级的操作,只需要执行以下命令
    #注意先configure  在nginx源码包执行
    # shell > make install && make upgrade
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
  • 相关阅读:
    数据可观察性如何帮助数据目录计划
    【ESD专题】案例 :走线没有强制先经过保护器件导致抗静电能力差
    C++语言程序设计课程设计任务书
    【Spring Security 实战 】Spring Security 整合 jwt 附源码
    AntBlazor Theme in ABP Framework
    细节决定成败:探究Mybatis中javaType和ofType的区别
    必备的API接口大全,让你的开发更高效
    SQLlabs46关
    【Spring源码】10. 递归调用的processConfigurationClass()方法
    Docker版部署RocketMQ开启ACL验证
  • 原文地址:https://blog.csdn.net/qq_48975137/article/details/133468944