阿里云服务器搭建(二) ~ 安装Tomcat

1. 下载tomcat

进入Apache Tomcat官网,下载系统所需的对应版本,这里下载的是9.0.27,将tar.gz包下载到本地
在这里插入图片描述

2. 上传服务器

执行命令将本机下载的tomcat压缩包tar.gz上传至服务器的usr/java/tomcat目录下(如果目录不存在则先创建)

#登陆远程服务器(xxx.xxx.xxx.xxx为远程服务器ip然后回车输入密码即可)
ssh root@xxx.xxx.xxx.xxx
#在usr/java/目录下新建tomcat目录
mkdir usr/java/tomcat
#本机执行上传命令(将下载的tomcat压缩包上传至远程服务器的tomcat目录下)
scp apache-tomcat-9.0.27.tar.gz root@xxx.xxx.xxx.xxx:/usr/java/tomcat/

3. 解压tomcat压缩包

进入到服务器的tomcat目录下,执行命令解压tomcat压缩包

#解压文件到当前目录
tar -zxvf apache-tomcat-9.0.27.tar.gz

此后会生成一个apache-tomcat-9.0.27文件夹
在这里插入图片描述

4. 修改tomcat默认端口

进入到apache-tomcat-9.0.27—>conf目录下,打开service.xml文件

#打开tomcat的service.xml文件
vim apache-tomcat-9.0.27/conf/service.xml
#修改默认的HTTP端口,由8080更改为自定义的(取值范围1-65535)只要没被占用即可。这里改为8030
<Connector port="8030" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />

修改后保存退出即可。
其他端口无需更改

  1. shutdown端口:

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

    SHUTDOWN 端口,你可以用 telnet 命令玩一下:telnet 8005 进去后,输入 SHUTDOWN 后,tomcat 就被关闭了。无需更改这个端口。

  2. AJP端口:

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

    AJP端口,是用于与 Apache httpd 服务器进行 AJP 通信用的,是给 mod_jk 库用的,如果不用 Apache httpd 服务器那这个端口可以不用理会。

5. 配置安全组

什么是安全组

在购买阿里云ECS服务器的时候,阿里云会要求客户设置安全组,如果不设置,阿里云会指定默认的安全组。那么,这个安全组是什么呢?顾名思义,就是为了服务器安全设置的。安全组其实就是一个虚拟的防火墙,可以让用户从端口、IP的维度来筛选对应服务器的访问者,从而形成一个云上的安全域。

购买时默认安全组

不知道安全组的用户在新购服务器上部署网站,常常会发现不能正常访问。这是因为在购买阿里云ECS服务器的时候,阿里云默认安全组只放行了ICMP协议、SSH 22端口、RDP 3389端口三个端口,访问网站的80或443端口并没有放行。
如果需要网站访问,那么用户在购买ECS服务器的时候需要勾选http80端口和https 443端口。

自定义配置安全组

综上所属上面我们修改了tomcat的Http端口为8030,因此同时我们需要在阿里云控制台增加此端口的安全组,才可正常访问tomcat服务。

  1. 进入阿里云控制台ESC服务器—>实例
    在这里插入图片描述
  2. 点击管理,选择本实例安全组。
    在这里插入图片描述
  3. 点击添加安全组规则
    在这里插入图片描述
  4. 端口范围填写我们需要开放的端口(8030),授权对象固定(0.0.0.0/0)
    在这里插入图片描述
    添加好以后如下
    在这里插入图片描述

6. 启动tomcat服务

进入到tomcat/bin目录文件夹下,启动tomcat服务

#进入tomcat->bin文件夹下
cd usr/java/tomcat/apache-tomcat-9.0.27/bin/
#启动tomcat服务
[root@abcdefghijklmnopqrstuvwxyz bin]# ./startup.sh 
Using CATALINA_BASE:   /usr/java/tomcat/apache-tomcat-9.0.27
Using CATALINA_HOME:   /usr/java/tomcat/apache-tomcat-9.0.27
Using CATALINA_TMPDIR: /usr/java/tomcat/apache-tomcat-9.0.27/temp
Using JRE_HOME:        /usr/java/jdk/jdk1.8.0_231/jre
Using CLASSPATH:       /usr/java/tomcat/apache-tomcat-9.0.27/bin/bootstrap.jar:/usr/java/tomcat/apache-tomcat-9.0.27/bin/tomcat-juli.jar
Tomcat started.

至此tomcat服务已经启动,通过浏览器使用公网IP访问我们服务试试:
在这里插入图片描述
至此我们就可以在本地连接上远程tomcat了。

扩展

tomcat启动超慢解决方案

在tomcat bin/ catalina.sh 中加入

JAVA_OPTS="$JAVA_OPTS -Djava.security.egd=file:/dev/./urandom"
tomcat启动成功但是浏览器无法访问

针对此种情况,需要关闭防火墙

# 查看防火墙状态
service firewalld status
  • disabled :表明 已经禁止开机启动
  • enable :表示开机自启,
  • inactive :表示防火墙关闭状态
  • activated(running):表示为开启状态

防火墙状态为开启,因此即使tomcat正常启动也无法通过浏览器访问
在这里插入图片描述
我们将其关闭即可

# 关闭防火墙
service firewalld stop       

关于网络防火墙操作命令:

命令 功能
service firewalld status 查看防火墙状态
service firewalld start 开启防火墙
service firewalld stop 关闭放后墙
service firewalld restart 重启防火墙
systemctl disable firewalld.service 禁止防火墙开机启动
systemctl enable firewalld 设置防火墙开机启动
tomcat设置开机自动启动

由于操作系统及tomcat版本不同配置也不相同,这里配置是依据Centos7+Tomcat9解决方案

1. 修改catalina.sh文件
打开/opt/tomcat/apache-tomcat-9.0.12/bin/catalina.sh 文件,在文件正文开头添加JDK路径

#设置当前机器jdk路径(依据自己机器jdk安装路径填写)
JAVA_HOME=/opt/java/jdk/jdk1.8.0_231
JRE_HOME=$JAVA_HOME/jre

在这里插入图片描述
2. 增加tomcat9.service文件
/usr/lib/systemd/system目录下增加tomcat9.service文件,并填写如下内容:

[Unit]
Description=Tomcat
After=syslog.target network.target remote-fs.target nss-lookup.target
  
[Service]
Type=oneshot
#当前机器tomcat启动和关闭脚本路径(根据自己tomcat安装路径填写)
ExecStart=/opt/tomcat/apache-tomcat-9.0.27/bin/startup.sh
ExecStop=/opt/tomcat/apache-tomcat-9.0.27/bin/shutdown.sh
ExecReload=/bin/kill -s HUP $MAINPID
RemainAfterExit=yes
  
[Install]
WantedBy=multi-user.target

3. 激活服务
执行如下命令激活服务

systemctl enable tomcat9.service

4. 验证
关闭机器重新启动后,直接访问tomcat服务验证是否自动启动。

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐