热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

linux进阶之Tomcat服务篇

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

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

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

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

               connectionTimeout="20000"

               redirectPort="8443" />

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

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

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

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

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

            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监听端口的字符串.该属性必须设置

-->

验证:

[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连接器使用的协议,支持HTTPAJPAJP(Apache 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

69

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

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

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

22

69

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

第三步:启动多实例

[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加端口再次访问即可看到我们刚才写的文章


转载于:https://www.cnblogs.com/renyz/p/11354323.html


推荐阅读
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
  • 本文介绍了在Linux下安装和配置Kafka的方法,包括安装JDK、下载和解压Kafka、配置Kafka的参数,以及配置Kafka的日志目录、服务器IP和日志存放路径等。同时还提供了单机配置部署的方法和zookeeper地址和端口的配置。通过实操成功的案例,帮助读者快速完成Kafka的安装和配置。 ... [详细]
  • Oracle优化新常态的五大禁止及其性能隐患
    本文介绍了Oracle优化新常态中的五大禁止措施,包括禁止外键、禁止视图、禁止触发器、禁止存储过程和禁止JOB,并分析了这些禁止措施可能带来的性能隐患。文章还讨论了这些禁止措施在C/S架构和B/S架构中的不同应用情况,并提出了解决方案。 ... [详细]
  • mac php错误日志配置方法及错误级别修改
    本文介绍了在mac环境下配置php错误日志的方法,包括修改php.ini文件和httpd.conf文件的操作步骤。同时还介绍了如何修改错误级别,以及相应的错误级别参考链接。 ... [详细]
  • 基于PgpoolII的PostgreSQL集群安装与配置教程
    本文介绍了基于PgpoolII的PostgreSQL集群的安装与配置教程。Pgpool-II是一个位于PostgreSQL服务器和PostgreSQL数据库客户端之间的中间件,提供了连接池、复制、负载均衡、缓存、看门狗、限制链接等功能,可以用于搭建高可用的PostgreSQL集群。文章详细介绍了通过yum安装Pgpool-II的步骤,并提供了相关的官方参考地址。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 关于我们EMQ是一家全球领先的开源物联网基础设施软件供应商,服务新产业周期的IoT&5G、边缘计算与云计算市场,交付全球领先的开源物联网消息服务器和流处理数据 ... [详细]
  • 本文介绍了高校天文共享平台的开发过程中的思考和规划。该平台旨在为高校学生提供天象预报、科普知识、观测活动、图片分享等功能。文章分析了项目的技术栈选择、网站前端布局、业务流程、数据库结构等方面,并总结了项目存在的问题,如前后端未分离、代码混乱等。作者表示希望通过记录和规划,能够理清思路,进一步完善该平台。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • 成功安装Sabayon Linux在thinkpad X60上的经验分享
    本文分享了作者在国庆期间在thinkpad X60上成功安装Sabayon Linux的经验。通过修改CHOST和执行emerge命令,作者顺利完成了安装过程。Sabayon Linux是一个基于Gentoo Linux的发行版,可以将电脑快速转变为一个功能强大的系统。除了作为一个live DVD使用外,Sabayon Linux还可以被安装在硬盘上,方便用户使用。 ... [详细]
  • CentOS 7部署KVM虚拟化环境之一架构介绍
    本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ... [详细]
  • 本文介绍了Windows操作系统的版本及其特点,包括Windows 7系统的6个版本:Starter、Home Basic、Home Premium、Professional、Enterprise、Ultimate。Windows操作系统是微软公司研发的一套操作系统,具有人机操作性优异、支持的应用软件较多、对硬件支持良好等优点。Windows 7 Starter是功能最少的版本,缺乏Aero特效功能,没有64位支持,最初设计不能同时运行三个以上应用程序。 ... [详细]
  • 本文总结了淘淘商城项目的功能和架构,并介绍了传统架构中遇到的session共享问题及解决方法。淘淘商城是一个综合性的B2C平台,类似京东商城、天猫商城,会员可以在商城浏览商品、下订单,管理员、运营可以在平台后台管理系统中管理商品、订单、会员等。商城的架构包括后台管理系统、前台系统、会员系统、订单系统、搜索系统和单点登录系统。在传统架构中,可以采用tomcat集群解决并发量高的问题,但由于session共享的限制,集群数量有限。本文探讨了如何解决session共享的问题。 ... [详细]
  • 解决nginx启动报错epoll_wait() reported that client prematurely closed connection的方法
    本文介绍了解决nginx启动报错epoll_wait() reported that client prematurely closed connection的方法,包括检查location配置是否正确、pass_proxy是否需要加“/”等。同时,还介绍了修改nginx的error.log日志级别为debug,以便查看详细日志信息。 ... [详细]
author-avatar
kshen24
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有