• linux进阶之Tomcat服务篇


    一、Tomcat简介

    Tomcat服务器是一个免费的开放源代码的Web应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选

    TomcatNginxApache(httpd)lighttpdWeb服务器一样,具有处理HTML页面的功能,另外它还是一个ServletJSP容器,独立的Servlet容器是Tomcat的默认模式。不过, Tomcat处理静态HTML的能力不如Nginx/Apache服务器。目前Tomcat最新版本为9.0Java容器还有resinweblogic等。

    二、Tomcat安装及部署

    系统环境:Centos7

    第一步:下载tomcat安装包

    tomcat官网:https://tomcat.apache.org/

    第二步:安装包上传至linux

    第三步:下载java环境         #Tomcat是运行Java的一个容器,需要有Java环境

    选择yum安装tomcat需要的jdk,就不用再手动配置环境变量

    [root@ren3 ~]# yum install java -y      

    第四步:解压tomcat安装包

    [root@ren3 ~]# unzip apache-tomcat-9.0.14.zip

    第五步:移动并改名

    [root@ren3 ~]# mv apache-tomcat-9.0.14 /usr/local/tomcat           #会自动转换成二进制可执行文件

    第六步:授予执行权限

    [root@ren3 local]# chmod -R a+x tomcat/

    第七步:启动tomcat

    sh catalina.sh start#启动时最好使用catalina命令,操作过程会存放在catalina.out日志里

    tailf catalina.out#监控catalina日志 

    [root@ren3 bin]# ./startup.sh

    [root@ren3 bin]# ss -tnl           #启动Tomcat会开启以下三个端口

    State      Recv-Q Send-Q Local Address:Port          Peer Address:Port     

    LISTEN      0      100         :::8009           :::*                 

    LISTEN      0      100         :::8080           :::*                 

    LISTEN      0       1   ::ffff:127.0.0.1:8005          :::*                 

           [root@ren3 bin]# ./shutdown.sh            #关闭tomcat

    [root@ren3 ~]# startup.sh        #在其它目录执行启动命令,无法启动Tomcat,需配置环境变量

    [root@ren3 ~]# vim /etc/profile      #环境变量主配置文件

    [root@ren3 ~]# vim /etc/profile.d/tomcat.sh               #配置环境变量子配置文件

    #######################################

    export PATH=/usr/local/tomcat/bin/:$PATH        #环境变量设置内容

    ##########################################

    [root@ren3 ~]# source /etc/profile.d/tomcat.sh           #重新加载配置文件使其生效

    [root@ren3 ~]# startup.sh        #可以在任何目录启动Tomcat

    第八步:添加防火墙

    [root@ren3 ~]# firewall-cmd --add-port=8080/tcp

    [root@ren3 ~]# firewall-cmd --add-port=8080/tcp --permanent

    第九步:浏览器访问

    三、Tomcat相关文件介绍

    1Tomcat目录介绍

    [root@ren3 ~]# cd /usr/local/tomcat

    [root@ren3 tomcat]# ls

    bin   lib      logs    RELEASE-NOTES temp     work

    conf LICENSE NOTICE RUNNING.txt    webapps

    [root@ren3 tomcat]# tree -L 1

    ├── bin               #用以启动、关闭Tomcat或者其它功能的脚本(.bat文件和.sh文件)

    ├── conf             #用以配置TomcatXMLDTD文件

    ├── lib                #存放web应用能访问的JAR

    ├── LICENSE

    ├── logs                     #Catalina和其它Web应用程序的日志文件

    ├── NOTICE

    ├── RELEASE-NOTES

    ├── RUNNING.txt

    ├── temp                   #临时文件

    ├── webapps             #Web应用程序根目录

    └── work                   #用以产生有JSP编译出的Servlet.java.class文件

    [root@ren3 tomcat]# cd webapps/

    [root@ren3 webapps]# ll

    总用量 8

    drwxr-x--x 14 root root 4096 8 14 09:29 docs         #Tomcat帮助文档

    drwxr-x--x 6 root root   83 8 14 09:29 examples              #web应用实例

    drwxr-x--x 5 root root   87 8 14 09:29 host-manager              #管理

    drwxr-x--x 5 root root 103 8 14 09:29 manager        #管理

    drwxr-x--x 3 root root 4096 8 14 09:29 ROOT           #默认网站根目录

    2Tomcat日志

    [root@ren3 logs]# tailf catalina.out             #Tomcat的实时日志

    3Tomcat主配置文件server.xml详解

    [root@ren3 conf]# vim server.xml

    <Server port="8005" shutdown="SHUTDOWN">

    #Server元素代表整个容器,是Tomcat实例的顶层元素。由org.apache.catalina.Server接口来定义。它包含一个<Service>元素,并且它不能做为任何元素的子元素。

        #port指定Tomcat监听shutdown命令端口。终止服务器运行时,必须在Tomcat服务器所在的机器上发出shutdown命令,该属性是必须的。

        #shutdown指定终止Tomcat服务器运行时,发给Tomcat服务器的shutdown监听端口的字符串,该属性必须设置。

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

                   connectionTimeout="20000"

                   redirectPort="8443" />

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

    #connector:接收用户请求,类似于httpdlisten配置监听端口.

    #port指定服务器端要创建的端口号,并在这个端口监听来自客户端的请求。

      #protocol连接器使用的协议,支持HTTPAJPAJPApache Jserv Protocol)专用于tomcatapache建立通信的, httpd反向代理用户请求至tomcat时使用(可见Nginx反向代理时不可用AJP协议)。

       #redirectPort指定服务器正在处理http请求时收到了一个SSL传输请求后重定向的端口号

      #connectionTimeout指定超时的时间数(毫秒为单位)

    <Host name="localhost" appBase="webapps"

                unpackWARs="true" autoDeploy="true">

    #host表示一个虚拟主机

       #name指定主机名

       #appBase应用程序基本目录,即存放应用程序的目录.一般为appBase="webapps" ,相对于CATALINA_HOME而言的,也可以写绝对路径。

      #unpackWARs如果为true,则tomcat会自动将WAR文件解压,否则不解压,直接从WAR文件中运行应用程序

       #autoDeploy:在tomcat启动时,是否自动部署。

    4Tomcat的三个端口

    Tomcat主配置文件Server.xml文件里面有三个端口

    第一个(8005):接收SHUTDOWN指令

    port指定Tomcat监听shutdown命令端口.终止服务器运行时,必须在Tomcat服务器所在的机器上发出shutdown命令.该属性是必须的.

    shutdown指定终止Tomcat服务器运行时,发给Tomcat服务器的shutdown监听端口的字符串.该属性必须设置

    -->

    <Server port="8005" shutdown="SHUTDOWN">

    验证:

    [root@ren3 conf]# telnet 127.0.0.1 8005

    Trying 127.0.0.1...

    Connected to 127.0.0.1.

    Escape character is '^]'.

    SHUTDOWN

    Connection closed by foreign host.

    第二个(8080):接收HTTP协议

    connector:接收用户请求,类似于httpdlisten配置监听端口.

    port指定服务器端要创建的端口号,并在这个端口监听来自客户端的请求。

           redirectPort指定服务器正在处理http请求时收到了一个SSL传输请求后重定向的端口号

    第三个(8009):接收AJP协议

    protocol连接器使用的协议,支持HTTPAJPAJPApache Jserv Protocol)专用于tomcatapache建立通信的, httpd反向代理用户请求至tomcat时使用(可见Nginx反向代理时不可用AJP协议)

    四、Tomcat多实例部署

    多实例:一台服务器跑多个Tomcat服务,可以最大化程度利用系统资源

    第一步:复制Tomcat目录

    [root@ren3 local]# cp tomcat/ tomcat1 -a

    [root@ren3 local]# cp tomcat/ tomcat2 -a

    第二步:修改配置文件

    [root@ren3 local]# netstat -anp |grep 8006

    [root@ren3 local]# netstat -anp |grep 8007

    [root@ren3 local]# netstat -anp |grep 8081

    [root@ren3 local]# netstat -anp |grep 8082        #查看端口是否被占用

    [root@ren3 local]# vim /usr/local/tomcat1/conf/server.xml

    #################################

    22<Server port="8006" shutdown="SHUTDOWN">

    69<Connector port="8081" protocol="HTTP/1.1"

    ########################################

    [root@ren3 local]# vim /usr/local/tomcat2/conf/server.xml

    #################################

    22<Server port="8006" shutdown="SHUTDOWN">

    69<Connector port="8081" protocol="HTTP/1.1"

    ########################################

    第三步:启动多实例

    [root@ren3 local]# tomcat1/bin/startup.sh

    [root@ren3 local]# tomcat2/bin/startup.sh

    [root@ren3 local]# ss -tnl              #查看端口是否开启

    第四步:添加防火墙

    [root@ren3 local]# firewall-cmd --add-port=8081/tcp --permanent

    [root@ren3 local]# firewall-cmd --add-port=8082/tcp --permanent

    [root@ren3 local]# firewall-cmd --reload

    第五步:浏览器访问

    五、Tomcat搭建集群

    第一步:修改网站文件以便区分

    [root@ren3 local]# rm -rf tomcat/webapps/ROOT/*

    [root@ren3 local]# rm -rf tomcat1/webapps/ROOT/*

    [root@ren3 local]# rm -rf tomcat2/webapps/ROOT/*

    [root@ren3 local]# echo "000000" > tomcat/webapps/ROOT/index.html

    [root@ren3 local]# echo "111111" > tomcat1/webapps/ROOT/index.html

    [root@ren3 local]# echo "2222222" > tomcat2/webapps/ROOT/index.html

    第二步:安装nginx

    [root@ren3 local]# yum -y install nginx

    [root@ren3 ~]# netstat -anp |grep 80           #检查80端口是否在用

    第三步:配置nginx(负载均衡)

    [root@ren3 ~]# vim /etc/nginx/nginx.conf         #删除主配置文件中的设置

    [root@ren3 ~]# vim /etc/nginx/conf.d/threecat.conf         #配置新的配置文件

    ############################################################

    server {

            listen 80;

            server_name threecat;

            location / {

            proxy_pass http://ren;

            }

     }

     upstream ren {

            server 192.168.11.3:8080 weight=2 max_fails=2 fail_timeout=2;

            server 192.168.11.3:8081 weight=2 max_fails=2 fail_timeout=2;

            server 192.168.11.3:8082 weight=2 max_fails=2 fail_timeout=2;

            }

    #############################################################

    [root@ren3 ~]# nginx -t          #检查配置文件是否有误

    [root@ren3 ~]# systemctl restart nginx

    [root@ren3 ~]# systemctl enable nginx

    [root@ren3 ~]# firewall-cmd --add-port=80/tcp --permanent

    [root@ren3 ~]# firewall-cmd –reload

    第四步:浏览器验证

    六、Tomcat上线jpress博客系统

    jpress类似于wordpress的一个开源博客系统

    第一步:下载jpress

    https://gitee.com/fuhai/jpress/blob/alpha/wars/jpress-web-newest.war

    第二步:上传jpress包至ROOT

    [root@ren3 ROOT]# pwd

    /usr/local/tomcat/webapps/ROOT

    [root@ren3 ROOT]# rz

    [root@ren3 ROOT]# ls

    fuhai-jpress-v2.0-rc.8.zip

    第三步:解压

    使用unzip进行解压

    [root@ren3 ROOT]# unzip fuhai-jpress-alpha.zip

    [root@ren3 ROOT]# ls

    fuhai-jpress-alpha.zip jpress

    第四步:复制war包至ROOT

    [root@ren3 wars]# pwd

    /usr/local/tomcat/webapps/ROOT/jpress/wars

    [root@ren3 wars]# cp jpress-web-newest.war /usr/local/tomcat/webapps/ROOT/

    第五步:解压war

    [root@ren3 ROOT]# unzip jpress-web-newest.war

    [root@ren3 ROOT]# ls

    fuhai-jpress-alpha.zip jpress jpress-web-newest.war META-INF robots.txt static templates WEB-INF

    第六步:浏览器进行访问

    http://192.168.11.3:8080/jpress

    提示连接数据库

    第七步:下载并创建数据库和用户

    [root@ren3 ROOT]# yum -y install mariadb-server

    [root@ren3 ROOT]# systemctl restart mariadb

    [root@ren3 ROOT]# systemctl enable mariadb

    [root@ren3 ROOT]# mysql -uroot

    MariaDB [(none)]> create database ren;

    MariaDB [(none)]> grant all on *.* to ren3@'localhost' identified by '123';

    MariaDB [(none)]> exit

    Mysql(-u:指定用户名,-h:指定主机IP-p:指定登录密码)

    grant all on *.* to ren3@’%’ identified by ‘123’      #%指所有主机都可以调用该数据库

    第七步:JPress安装

    1、填写数据库信息

    2、根据提示输入网站名称及管理员账号和密码,点击完成

    第八步:重启Tomcat

    [root@ren3 ROOT]# shutdown.sh

    [root@ren3 ROOT]# startup.sh

    第九步:再次访问Tomcat

    第十步:进入管理员界面

    http://192.168.11.3:8080/admin

    输入之前设置的管理员账号及密码,点击登录

    第十一步:撰写文章

    退出当前登录用户,直接输入IP加端口再次访问即可看到我们刚才写的文章

  • 相关阅读:
    mybatis mapper配置
    python 练习题
    python 函数
    python 文件处理
    python3 编码解码
    messagebox
    Python 基础
    PyMongo
    tkinter Text
    python tkinter entry
  • 原文地址:https://www.cnblogs.com/renyz/p/11354323.html
Copyright © 2020-2023  润新知