0%

Tomcat_ali

在阿里云ECS(centos)中安装Tomcat(笔记📒)

准备:

  • 关闭服务器的防火墙systemctl stop firewalld
  • 阿里云ECS安全组中开放Tomcat默认端口8080
  • 详细配置,点这里,或这里
  • 下载Tomcat官网地址:传送门
  • 需要先安装jdk
  • (在阿里云ECS中不需要提前下载安装包,直接使用命令进行下载安装)

下载

使用wget下载压缩包(下载到/home/temp

1
wget https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-9/v9.0.39/bin/apache-tomcat-9.0.39.tar.gz

解压到当前文件夹(所以先进入要放Tomcat的文件夹,再使用解压命令。我这里是解压到/home/temp

1
tar -zxvf /home/temp/apache-tomcat-9.0.39.tar.gz

启动

进入bin目录执行./startup.sh启动服务,执行./shutdown.sh关闭服务。

启动Tomcat服务:(看到Tomcat started,说明启动成功)

1
2
3
4
5
6
7
8
9
10
[root@ali_server bin]# ./startup.sh
Using CATALINA_BASE: /home/temp/apache-tomcat-9.0.39
Using CATALINA_HOME: /home/temp/apache-tomcat-9.0.39
Using CATALINA_TMPDIR: /home/temp/apache-tomcat-9.0.39/temp
Using JRE_HOME: /home/temp/jdk1.8.0_141/jre
Using CLASSPATH: /home/temp/apache-tomcat-9.0.39/bin/bootstrap.jar:/home/temp/apache-tomcat-9.0.39/bin/tomcat-juli.jar
Using CATALINA_OPTS:
Tomcat started.
[root@ali_server bin]# pwd
/home/temp/apache-tomcat-9.0.39/bin

Tomcat服务,使用的默认端口是8080。我在服务器上开启Tomcat服务后,使用本地浏览器可以打开默认的Tomcat页面。http://qsdbl.site:8080。(注意是HTTP)

配置ssl

参考资料:

注意:阿里云ECS要放行相应的端口(我这里使用8443端口,因为Apache服务使用了443端口)。

下载证书

证书我是在阿里购买的免费证书,在证书服务管理控制台中下载Tamcat使用的数字证书,然后配置到Tomcat 服务器中。下载证书:传送门

  1. 登录 证书服务管理控制台
  2. 在我的证书订单页面,选择已签发的数字证书,单击 下载
  3. 选择 Tomcat,单击 下载证书for Tomcat
  4. 参考证书下载页面的配置指导,将数字证书部署到 Tomcat 服务器。

配置

conf文件夹下的server.xml文件进行如下配置。

添加配置一:

我已经有Apache服务使用443端口了,所以这里我还是使用了默认的8443端口。

1
2
3
4
5
6
7
8
9
10
<Connector port="443"   #将Tomcat中默认的HTTPS端口Connector port 8443修改为4438443端口不可通过域名直接访问、需要在域名后加上端口号;443端口是HTTPS的默认端口,可通过域名直接访问,无需在域名后加端口号。
protocol="org.apache.coyote.http11.Http11NioProtocol" #server.xml文件中Connector port有两种运行模式(NIOAPR),请选择NIO模式(也就是protocol="org.apache.coyote.http11.Http11NioProtocol")这一段进行配置。
maxThreads="150"
SSLEnabled="true">
<SSLHostConfig>
<Certificate certificateKeystoreFile="/usr/local/tomcat/cert/证书域名.pfx" #此处certificateKeystoreFile代表证书文件的路径,请用您证书的路径+文件名替换证书域名.pfx,例如:certificateKeystoreFile="/usr/local/tomcat/cert/abc.com.pfx"
certificateKeystorePassword="证书密码" #此处certificateKeystorePasswordSSL证书的密码,请用您证书密码文件pfx-password.txt中的密码替换,例如:certificateKeystorePassword="bMNML1Df"
certificateKeystoreType="PKCS12" /> #证书类型为PFX格式时,certificateKeystoreType修改为PKCS12。
</SSLHostConfig>
</Connector>

配置二:

1
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />  #将redirectPort修改为443,让HTTPS请求转发到443端口。

配置好之后重启Tomcat服务,使用https://域名:8443服务Tomcat服务器,测试是否配置成功。

要实现HTTP自动跳转为HTTPS,见前边的参考资料。

问题

记录在使用Tomcat时踩过的坑。具体错误可以到logs文件夹内查看日志信息。

重启失败

问题描述:使用./shutdown.sh 与 ./startup.sh命令重启Tomcat失败。运行shutdown.sh命令关闭Tomcat时出现错误提示,提示Tomcat可能未启动。

1
2
... AM org.apache.catalina.startup.Catalina stopServer
SEVERE: Could not contact localhost:8005. Tomcat may not be running.

解决方法:参考这篇博客。也有可能是配置不正确,具体错误可以到logs文件夹内查看日志信息。

可能是因为tomcat内存太小了,需要给tomcat增加虚拟内存。

修改bin/catalina.sh文件(vim catalina.sh),在这两行之行插入一行

1
2
# OS specific support.  $var _must_ be set to either true or false.
cygwin=false

最终修改为以下这样:

1
2
3
# OS specific support.  $var _must_ be set to either true or false.
JAVA_OPTS="-Xms512m -Xmx1024m -Xss2048K -XX:PermSize=256m -XX:MaxPermSize=512m"
cygwin=false

保存,重启tomcat即可。

扩展

结束进程

结束Tomcat进程。

使用下边命令查看tomcat是否在运行同时查看进程pid(即打印出的进程信息的第一串数字):

1
2
3
> ps -ef | grep tomcat
root 2993 1 0 20:07 pts/1 00:00:04 /usr/l...tomcat
root 3042 2838 0 20:17 pts/1 00:00:00 grep --color=auto tomcat

结束Tomcat进程:

1
> kill  2993

查看日志

查看日志,Tomcat根目录下的logs文件夹内。

更多关于Tomcat的笔记,访问这里。(或这里)

若图片不能正常显示,请在浏览器中打开

欢迎关注我的其它发布渠道