在CentOS 7中安装Tomcat 9并部署SpringBoot 2.0项目
Linux
2020-01-15
1362
0
Tomcat 安装
安装OpenJDK
Tomcat 9 要求Java 8及以上,本文安装OpenJDK.命令如下:
sudo yum install java-1.8.0-openjdk-devel
如果要看装Oracle Java请参考这篇文章
创建Tomcat系统用户
我们将创建一个tomcat用户和用户组,home目录为/opt/tomcat
,该账户用来运行Tomcat服务:
sudo useradd -m -U -d /opt/tomcat -s /bin/false tomcat
下载Tomcat
访问Tomcat下载页面并下载最新版本
wget http://mirrors.shu.edu.cn/apache/tomcat/tomcat-9/v9.0.16/bin/apache-tomcat-9.0.16.tar.gz
解压文件
tar -xzf apache-tomcat-9.0.16.tar.gz
将解压的文件移动到/opt/tomcat
目录
sudo mv apache-tomcat-9.0.16 /opt/tomcat/
因为Tomcat 9更新频繁,所以我们可以创建一个软连接latest
来指向最新的Tomcat目录:
sudo ln -s /opt/tomcat/apache-tomcat-9.0.14 /opt/tomcat/latest
将目录权限更换为tomcat
sudo chown -R tomcat: /opt/tomcat
确保bin
目录可执行
sudo sh -c 'chmod +x /opt/tomcat/latest/bin/*.sh'
创建 systemd 服务文件
在/etc/systemd/system/
目录中创建 tomcat.service
服务文件
sudo vim /etc/systemd/system/tomcat.service
贴入以下内容
[Unit]
Description=Tomcat 9 servlet container
After=network.target
[Service]
Type=forking
User=tomcat
Group=tomcat
Environment="JAVA_HOME=/usr/lib/jvm/jre"
Environment="JAVA_OPTS=-Djava.security.egd=file:///dev/urandom"
Environment="CATALINA_BASE=/opt/tomcat/latest"
Environment="CATALINA_HOME=/opt/tomcat/latest"
Environment="CATALINA_PID=/opt/tomcat/latest/temp/tomcat.pid"
Environment="CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC"
ExecStart=/opt/tomcat/latest/bin/startup.sh
ExecStop=/opt/tomcat/latest/bin/shutdown.sh
[Install]
WantedBy=multi-user.target
让systemd重载
sudo systemctl daemon-reload
启动Tomcat服务
sudo systemctl enable tomcat
sudo systemctl start tomcat
查看服务状态
sudo systemctl status tomcat
配置Tomcat Web管理界面
现在可以通过8080
端口访问Tomcat的页面,但我们还无法访问web管理界面。 首先需要创建一个用户。 Tomcat的用户和角色在tomcat-users.xml
文件中定义,你可以改下用户名和密码。
vim /opt/tomcat/latest/conf/tomcat-users.xml
<?xml version="1.0" encoding="UTF-8"?>
<!--
<role rolename="tomcat"/>
<role rolename="role1"/>
<user username="tomcat" password="<must-be-changed>" roles="tomcat"/>
<user username="both" password="<must-be-changed>" roles="tomcat,role1"/>
<user username="role1" password="<must-be-changed>" roles="role1"/>
-->
<role rolename="admin-gui"/>
<role rolename="manager-gui"/>
<user username="admin" password="admin_password" roles="admin-gui,manager-gui"/>
</tomcat-users>
默认情况下管理界面只允许localhost访问,从远程ip访问是不推荐的,会有安全隐患。
开启远程访问你只需要注释或删掉/opt/tomcat/latest/webapps/manager/META-INF/context.xml
文件中的以下内容。(注释部分)
<?xml version="1.0" encoding="UTF-8"?>
<Context antiResourceLocking="false" privileged="true" >
<!-- <Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" /> -->
</Context>
还有 /opt/tomcat/latest/webapps/host-manager/META-INF/context.xml
文件中以下内容。
<?xml version="1.0" encoding="UTF-8"?>
<Context antiResourceLocking="false" privileged="true" >
<!-- <Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" /> -->
</Context>
如果你只想指定某一IP可以访问,可以在后面增加你的公网IP,例如你公网ip是 8.8.8.8
。通过正则匹配添加到上述文件的allow里面就可以了。
<Context antiResourceLocking="false" privileged="true" >
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1|8.8.8.8" />
</Context>
修改好以后重启 tomcat
sudo systemctl restart tomcat
更改tomcat端口
编辑/opt/tomcat/latest/conf/server.xml
文件,修改位置如下:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
如果启动无法访问,可能是端口被占用,可以通过以下命令检查。
首先找到端口的应用 lsof -i:8080
在通过PID查找具体执行信息 ps axu|grep 10086
SpringBoot 配置
pom.xml配置
pom.xml
文件里面增加<packaging>jar</packaging>
属性如下:
<description>Demo project for Spring Boot</description>
<packaging>jar</packaging>
<properties>
<java.version>1.8</java.version>
</properties>
增加编译插件
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
打包设置
方法一可以在Run/Debug Configurations
界面里面添加Maven的配置,然后运行。如下图所示:
方法二,直接在Maven插件的菜单进行clean
和package
的操作
部署
打包好的文件先测试一下: 指定了端口和环境(qa) java -jar bihell-0.0.1-SNAPSHOT.jar --spring.profiles.active=qa --server.port=2019
-- 未完待续 --