linux环境下tomcat安装

Tomcat

一、什么是Tomcat?

1.1、Tomcat介绍

Tomcat又叫Apache Tomcat最早是sun公司开发的,1999年捐献给apache基金会,隶属于雅加达项目,现在已经独立成一个顶级项目,因为tomcat技术先进,性能稳定,又是一个开源的web应用服务器,所以很多企业都在使用,很多Java开发者也在使用,开发调试jsp的首选,被更多企业用于Java容器。

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

1.2、同类产品

除了tomcat之外还有很多同类的Java容器产品,resin服务器/jetty服务器/weblogic服务器

1.3、Apache、Nginx、Tomcat 三者比较

Apache 老牌web服务器,功能多、性能稳定,但是配置繁琐,很多初学者望而却步
Nginx 新出之秀,支持负载均衡、反向代理,属于轻量级服务器没apache功能多,但是并发比apache高
Tomcat 能够处理动态请求,可以独立apache运行,支持jsp,缺点静态文件处理不是很好,属于java容器
tomcat是java语言开发的,nginx、apache是c语言开发的。企业一般都是nginx或者apache处理静态配合tomcat处理动态的架构

二、安装Tomcat并启动

2.1、下载并安装Tomcat

!!!部署tomcat之前,必须先安装jdk环境
java11 lts
https://www.oracle.com/cn/java/technologies/javase-jdk11-downloads.html

准备工作
关闭防火墙
关闭Selinux

1.安装并验证jdk环境
[root@10-255-20-182 ~]# rpm -ivh jdk-11.0.9_linux-x64_bin.rpm 安装rpm包
[root@10-255-20-182 ~]# java -version 检查jdk环境是否安装成功
java version "11.0.9" 2020-10-20 LTS  java版本
Java(TM) SE Runtime Environment 18.9 (build 11.0.9+7-LTS) javase版本
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.9+7-LTS, mixed mode) java虚拟机版本

1.1.压缩包安装
[root@test ~]# tar xf jdk-8u51-linux-x64.tar.gz -C /usr/local
[root@test ~]# vim /etc/profile
export JAVA_HOME=/usr/local/jdk
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$PATH

[root@test ~]# source /etc/profile

[root@test ~]# java -version
java version "1.8.0_51"
Java(TM) SE Runtime Environment (build 1.8.0_51-b16)
Java HotSpot(TM) 64-Bit Server VM (build 25.51-b03, mixed mode)


2.安装并验证tomcat
2.1下载
[root@10-255-20-182 ~]# wget https://mirror.bit.edu.cn/apache/tomcat/tomcat-9/v9.0.40/bin/apache-tomcat-9.0.40.tar.gz

2.2.解压安装包(tomcat属于二进制安装包,无需编译安装)
[root@10-255-20-182 ~]# tar xf apache-tomcat-9.0.40.tar.gz
[root@10-255-20-182 ~]# ls tomcat
bin           conf             lib      logs    README.md      RUNNING.txt  webapps
BUILDING.txt  CONTRIBUTING.md  LICENSE  NOTICE  RELEASE-NOTES  temp         work

2.3.启动并验证
[root@10-255-20-182 ~]# cd /root/tomcat1/bin/
[root@10-255-20-182 bin]# ./startup.sh 
Using CATALINA_BASE:   /root/tomcat1
Using CATALINA_HOME:   /root/tomcat1
Using CATALINA_TMPDIR: /root/tomcat1/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /root/tomcat1/bin/bootstrap.jar:/root/tomcat1/bin/tomcat-juli.jar
Using CATALINA_OPTS:   
Tomcat started.
[root@10-255-20-182 webapps]# elinks http:117.51.154.71:8080 --dump
                              Apache Tomcat/9.0.40
[root@10-255-20-182 webapps]# ss -lnp | grep java
tcp    LISTEN     0      1      127.0.0.1:8005                  *:*                   users:(("java",pid=15852,fd=56))
tcp    LISTEN     0      100       *:8080                  *:*                   users:(("java",pid=15852,fd=43))

2.2、Tomcat端口

tomcat常见端口不是80,tomcat三个端口分别是
8080 web端口
8005 关闭端口
8009 ajp端口(默认关闭ajp端口)

2.3、Tomcat常见目录及文件

[root@10-255-20-182 tomcat1]# ls
bin           conf             lib      logs       webapps       temp   work

bin:tomcat可执行文件
----startup.sh 启动脚本
----shutdown.sh 关闭脚本
----catalina.sh 功能脚本
conf:tomcat配置文件
----server.xml 设备端口/域名等
----web.xml 设备页面
----tomcat-users.xml 管理tomcat用户
lib:tomcat用的关联库
logs:日志文件
localhost_access_log.2020-11-30.txt 访问日志
catalina.2020-11-30.log 输出日志
host-manager.2020-12-02.log host-manager项目的日志信息
manager.2020-12-02.log manager日志
localhost.2020-11-30.log 应用初始化错误日志
webapps:存放tomcat发布目录
----ROOT tomcat默认页面
temp:tomcat运行临时文件
work:存放jsp编译文件

三、关键配置文件详解

3.1、server.xml

......远程关闭端口,企业生产环境一定要更改,shutdown命令也一定要做更改
<Server port="8005" shutdown="SHUTDOWN"> 
......
......tomcat web端口,也可以更改
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
......ajp端口,默认关闭状态
<Connector protocol="AJP/1.3"
address="::1"
port="8009"
redirectPort="8443" />
......

3.2、web.xml

<welcome-file-list>
	<welcome-file>index.html</welcome-file>
	<welcome-file>index.htm</welcome-file>
	<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
定义欢迎页,默认读取第一个

    <session-config>
        <session-timeout>30</session-timeout>
    </session-config>
会话超时时间

3.3、tomcat-users.xml

  <role rolename="manager-gui"/>
  <role rolename="manager-script"/>
  <role rolename="manager-jmx"/>
  <role rolename="manager-status"/>
  <role rolename="admin-gui"/>
  <role rolename="admin-script"/>
  <role rolename="tomcat" password="tomcat" roles="manager-gui,manager-script,manager-jmx,manager-status,admin-gui,admin-script"/>

定义角色跟用户
manager-gui     html接口
manager-script  纯文本接口
manager-jmx     代理接口
manager-status  访问状态查看
admin-gui       允许用户访问html管理页面
admin-script    允许用户访问文本管理界面

四、发布静态网页

1.创建目录
[root@10-255-20-182 webapps]# mkdir test
2.创建静态文件
[root@10-255-20-182 webapps]# echo '<%= new java.util.Date() %>'> test/index.jsp 
3.重启tomcat
[root@10-255-20-182 bin]# ./shutdown.sh && ./startup.sh 
4.测试
[root@10-255-20-182 webapps]# elinks http://117.51.154.71:8080/test/index.jsp --dump
   Wed Dec 02 11:01:26 CST 2020

五、发布动态网页

准备工作
下载jpress,官网http://www.jpress.io

1.文件放入webapps
[root@10-255-20-182 webapps]# ls
docs  examples  host-manager  jpress.jar  manager  ROOT  test

2.重启tomcat
[root@10-255-20-182 bin]# ./shutdown.sh && ./startup.sh

3.查看webapps(tomcat会自动解压跟.jar同名的目录)
[root@10-255-20-182 webapps]# ls
docs  examples  host-manager  jpress  manager  ROOT  test

4.安装数据库
[root@10-255-20-182 ~]# yum install -y mariadb mariadb-server 

5.启动数据库
[root@10-255-20-182 ~]# systemctl start mariadb

6.创建数据库(默认没有密码)
[root@10-255-20-182 ~]# mysql -uroot -p
Enter password: 
MariaDB [(none)]> create database jpress charset utf8; 创建数据库
MariaDB [(none)]> grant all on jpress.* to jpress@'localohost' identified by 'password'; 授权用户并设置用户密码

7.重启tomcat
[root@10-255-20-182 bin]# ./shutdown.sh && ./startup.sh

8.浏览器登录设置。

9.网页验证
[root@10-255-20-182 ~]# elinks http://117.51.154.71:8080/jpress --dump
                                     myweb
[1]欢迎使用JPress

六、Tomcat与Nginx结合

nginx反向代理可以实现动态请求转发到tomcat
1.更改nginx配置文件
[root@10-255-20-182 sbin]# vim ../conf/nginx.conf
server {
        location /test {
            proxy_pass http://127.0.0.1:8080;
        }
}

2.测试
[root@10-255-20-182 sbin]# elinks http://117.51.154.71/test --dump
   Wed Dec 02 11:24:08 CST 2020

七、Tomcat多实例

7.1、多端口意义

意义:
避免资源浪费,合理充分利用硬件资源
注意:
开启多实例要保证三个端口不能冲突

7.2、如何开启

1.复制
[root@10-255-20-182 ~]# cp -r tomcat1 tomcat2 

2.更改端口(所有端口+1)
8005 web端口
8081 远程关闭端口
8009 ajp协议端口
[root@10-255-20-182 ~]# vim tomcat2/conf/server.xml
......web端口
<Server port="8006" shutdown="SHUTDOWN"> 
......
......tomcat远程关闭端口 
<Connector port="8081" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8444" />
......ajp端口,默认关闭状态
<Connector protocol="AJP/1.3"
address="::1"
port="8009"
redirectPort="8443" />
......

3.验证
[root@10-255-20-182 ~]# netstat -antlp | grep java
tcp        0      0 127.0.0.1:8005          0.0.0.0:*               LISTEN     15852/java          
tcp        0      0 127.0.0.1:8006          0.0.0.0:*               LISTEN     6393/java          
tcp        0      0 0.0.0.0:8080            0.0.0.0:*               LISTEN     15852/java          
tcp        0      0 0.0.0.0:8081            0.0.0.0:*               LISTEN     6393/java

可以使用
jmap -heap tomcat进程ID
命令来查看tomcat里面内存的使用情况
修改conf目录下面的server.xml文件来配置tomcat的最大连接数和线程数
<Connector port="8080" protocol="HTTP/1.1"  
               connectionTimeout="20000"  
               redirectPort="8443"  
			   maxConnections="2000"
               maxThreads="100" 
			   acceptCount="1000"/>
			   
maxConnections="2000"表示允许的最大连接数是2000
maxThreads="100"表示开启100个线程
acceptCount="1000"表示系统达到最大连接数,然后开始排队的最大排队连接数
根据上面的配置可以看的出来,当系统达到3000连接数以后,在有连接过来将不会被处理
至此tomcat和jdk就安装完成了
tomcat最好是要和apache或者nginx一起使用,不要单独直接对外开放端口
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值