Vue + 多模块 Springboot 前后端分离项目部署

服务器环境

推荐使用 Xshell 连接远程服务器,使用 Xftp 进行本地与远程服务器之间的文件传输

查看 Linux 版本:

cat /proc/version

查看 CentOS 版本:

cat /etc/redhat-release

查看 JDK 版本:

java -version

常用 Linux 命令

防火墙

查看防火墙状态:

systemctl status firewalld

开启防火墙:

systemctl start firewalld

关闭防火墙:

systemctl stop firewalld

重启防火墙:

systemctl restart firewalld.service

查看所有开放的端口:

firewall-cmd --zone=public --list-ports

开放80端口:

firewall-cmd --zone=public --add-port=80/tcp --permanent (--permanent永久生效,没有此参数重启后失效)

查看80端口:

firewall-cmd --zone=public --query-port=80/tcp

删除80端口:

firewall-cmd --zone=public --remove-port=80/tcp --permanent

开放端口区间:

firewall-cmd --permanent --zone=public --add-port=8080-9999/tcp //永久

重新载入使配置立即生效:

firewall-cmd --reload

注意:阿里云服务器除了开放系统防火墙端口,还需要在云控制台配置开放端口。

进程

在部署前需确认防火墙已经开放端口,且端口号没有被其他进程占用。

查看所有进程:

ps -ef

查看所有 java 进程:

ps aux | grep java

查看指定端口 9530 占用:

netstat -apn | grep 9530

杀死 pid 进程:

kill -9 pid

Docker

查看Docker的磁盘使用情况:

docker system df

清理磁盘,删除关闭的容器、无用的数据卷和网络,以及dangling镜像(即无tag的镜像):

docker system prune

清理磁盘,删除关闭的容器、无用的数据卷和网络,dangling镜像(即无tag的镜像),以及没有容器使用Docker镜像:

docker system prune -a

后端部署

首先将后端项目打成 jar 包,然后在服务器后台运行 java 进程即可。

SpringBoot 打 jar 包

多模块项目,在 AdminApplication.java 所在模块的 pom.xml 文件中引入插件:

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

使用 maven 工具打包。在编辑器终端输入以下命令,或者使用编辑器中的 maven 工具进行 package 操作,等待打包完成(jar 包中包含项目的依赖):

mvn clean package

终端出现 build success 即为打包完成。打包前注意检查生产环境下配置文件 prod.yml 中的各项配置是否正确,特别是配置项中与数据库相关的属性是否正确,例如,当数据库用户密码包含 ‘#’ 字符时,需要对密码打引号。
最终形成的 jar 包在项目的输出目录(一般为 target 或 out 文件夹)中。

SpringBoot 进程在 Linux 后台启动

将 AdminApplication.java 所在模块的输出目录里的 jar 包拷贝到服务器中,然后进入到该 jar 包所在目录,执行以下命令:

java -jar xxx.jar

关闭 Xshell 终端后程序会自动终止,如果想要其在后台继续运行,将上述命令替换成:

nohup java -jar xxx.jar &

服务器中出现该 java 进程,表示后端程序运行成功。

前端部署

使用 npm 工具打包。在编辑器终端输入以下命令,或者使用编辑器中的 npm 工具进行 build 操作,注意在打包前检查生产环境下的配置文件 prod.env.js 中的各项配置是否正确,特别是与后端地址及端口号是否对应:

npm run build prod

打包完成后,将生成的 dist 文件拷贝到服务器中即可。

Nginx 配置

修改配置文件

找到 nginx 文件夹下的 nginx.conf 配置文件,修改 nginx.conf 文件的内容:

    server {

	##listen监听的端口
	#语法:listen address:port [ default(deprecated in 0.8.21) | default_server | [ backlog=num | rcvbuf=size | sndbuf=size |
	accept_filter=filter | deferred | bind | ssl ] ]
	#default_server: 如果没有设置这个参数,那么将会以在nginx.conf中找到的第一个server块作为默认server块
	
	listen       8080;
 
 
	#主机名称:其后可以跟多个主机名称,开始处理一个HTTP请求时,nginx会取出header头中的Host,与每个server中
	server_name进行匹配,以此决定到底由那一个server来处理这个请求。有可能一个Host与多个server块中的server_nam
	都匹配,这时会根据匹配优先级来选择实际处理的server块。server_name与Host的匹配优先级见文末。
	
	server_name  localhost;
 
 
 	# 前端 dist 文件夹地址
 	root   usr/vue/dist;
 	
 	
 	# 站点主页文件
 	index  index.html index.htm;


	# 后端服务的配置
	location / {
		# 后端服务地址
        proxy_pass http://localhost:8090;
    }
 
 
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   html;
    }
    
}

配置文件生效

进入 nginx 安装目录 sbin 下执行命令,检查配置文件是否正确:

cd /usr/local/nginx/sbin
./nginx -t

在该目录下重启 nginx 服务:

./nginx -s reload

参考

CentOS7.5查看防火墙状态,启动,关闭防火墙
Nginx —— nginx服务的基本配置(nginx.conf文件的详解)
nginx启动成功,访问不了
nginx作为web服务以及nginx.conf详解
Nginx 相关介绍(Nginx是什么?能干嘛?)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值