在部署项目之前,必须确保 Centos 7 中已经配置好了 jdk、mysql、maven 等配置。基本步骤和 window 系统基本一致。整体步骤可分为:打包 > 上传 > 启动项目 > 对外开放相应端口 > 访问。
1、打包
在本地打包相应的 jar 包。
mvn package
2、上传
将 jar 包上传到服务器的某个位置。我放在 /usr/project/auto_parts 中。
3、启动项目
启动项目有很多种方法。
java -jar xxx.jar
当前 ssh 窗口被锁定,可以直接按 ctrl+c 键终止程序运行,或者直接关闭窗口,程序退出。(一般不使用这种方式运行程序)
java -jar xxx.jar &
& 代表在后台运行该程序,所以不存在方上面方法中窗口锁定问题,但是当关闭窗口的时候,程序依然退出。(不推荐使用)
nohup java -jar xxx.jar &
nohup 的意思是:不挂断运行的命令,当终端关闭时,程序依然运行。当使用该命令时,该程序的输出默认会被重定向到 nohup.out 的文件中。
nohup java -jar xxx.jar >auto_parts.log &
后台运行,并将相关日志输出到 auto_parts.log
4、开放端口
- 查看防火墙状态
[root@VM-0-4-centos ~]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2021-05-13 23:25:50 CST; 12h ago
running 表示运行中,not running 表示还没启动。
- 启动防火墙
若没启动则先启动防火墙。
[root@VM-0-4-centos ~]# systemctl start firewalld
Failed to start firewall.service: Unit not found.
表示防火墙还没安装。执行以下命令进行安装:
[root@VM-0-4-centos ~]# yum install firewalld Loaded plugins: fastestmirror, langpacks Loading mirror speeds from cached hostfile ...(等待安装)
[root@VM-0-4-centos ~]# systemctl unmask firewalld Removed symlink /etc/systemd/system/firewalld.service.
[root@VM-0-4-centos ~]# systemctl enable firewalld Created symlink from /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service to >/usr/lib/systemd/system/firewalld.service. Created symlink from /etc/systemd/system/multi-user.target.wants/firewalld.service to >/usr/lib/systemd/system/firewalld.service.
[root@VM-0-4-centos ~]# systemctl start firewalld
- 重新查看防火墙状态
- 查看开放的端口列表
[root@VM-0-4-centos ~]# firewall-cmd --permanent --zone=public --list-ports
空则表示没有开放端口
- 开放 8809 端口
[root@VM-0-4-centos ~]# firewall-cmd --zone=public --add-port=8809/tcp --permanent;
success
- 更新防火墙规则
[root@VM-0-4-centos ~]# firewall-cmd --reload
success
- 查看端口是否生效
[root@VM-0-4-centos ~]# firewall-cmd --zone=public --query-port=8809/tcp;
yes
5、访问
- 未开放端口下访问
- 开放端口下访问
注:如果 centos 中的 mysql 也无法远程连接,则也需要开放 3306 端口。