鲲鹏社区首页
中文
注册
如何通过远程服务器实现Web应用部署

如何通过远程服务器实现Web应用部署

DevKit

发表于 2023/04/27

0

本章节以 github上比较热门的开源项目mall为例进行Web应用部署介绍。项目路径见:https://github.com/macrozheng/mall,源码预置到远程服务器的/root/mall目录。

mall项目是一套电商系统,包括前台商城系统及后台管理系统,基于SpringBoot + MyBatis 实现。 前台商城系统包含首页门户、商品推荐等模块。后台管理系统包含商品管理、订单管理等模块。

环境申请与访问

按照远程服务器操作步骤申请远程服务器环境。申请通过后,鲲鹏社区将环境信息发送到您填写的邮箱地址。

应用部署

1. 依赖软件部署

本小节以mall在Linux环境下的部署(基于Docker容器)进行说明。也可以参考项目部署说明

(1)Docker环境安装

yum install -y docker
systemctl start docker

(2)MySQL安装

a. 下载镜像

docker pull mysql:8.0.32

b.  启动MySQL服务

mkdir -p /mydata/mysql
mkdir -p /mydata/mysql/log
mkdir -p /mydata/mysql/conf/conf.d
mkdir -p /mydata/mysql/data
docker run -p 3306:3306 --name mysql \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=root  \
-d mysql:8.0.32

c. 将项目源码/root/mall/document/sql/mall.sql拷贝到 “/”目录

docker cp /root/mall/document/sql/mall.sql mysql:/

d. 创建数据库和用户:

docker exec -it mysql /bin/bash
mysql -uroot -proot --default-character-set=utf8
create database mall character set utf8;

e. 将sql文件导入到数据库

use mall;
source /mall.sql;

f.  创建账号:

create user 'reader'@'%' identified with mysql_native_password by '123456';
grant all privileges on *.* to 'reader' @'%';

(3)Redis安装

a. 下载镜像

docker pull redis:7

b. 启动redis 服务

docker run -p 6379:6379 --name redis \
-v /root/mall/redis/conf:/usr/local/etc/redis \
-v /mydata/redis/data:/data \s
-d redis:7 redis-server /usr/loca/etc/redis/redis.conf --appendonly yes

(4) Nginx安装

a. 下载镜像

docker pull nginx:1.22

b. 启动nginx 服务

 docker run -p 80:80 --name nginx \
-v /mydata/nginx/html:/usr/share/nginx/html \
-v /mydata/nginx/logs:/var/log/nginx  \
-d nginx:1.22

(5)RabbitMQ安装
a. 下载镜像

docker pull rabbitmq:3.9-management

b. 启动RabbitMQ

docker run -p 5672:5672 -p 15672:15672 --name rabbitmq \
-v /mydata/rabbitmq/data:/var/lib/rabbitmq \
-d rabbitmq:3.9-management

2. SpringBoot应用部署

(1)源码获取,源码已预置到远程服务器的/root/mall目录

(2)修改配置文件

注释项目根目录下的pom.xml中的docker.host属性:

<!--<docker.host>http://192.168.3.101:2375</docker.host%3E--%3E

(3) maven 编译打包

a. 编译打包

yum install -y maven
cd /root/mall && mvn package

b. 查看打包所有应用镜像 


(4) 启动与验证

a. 部署mall-admin

docker run -p 8080:8080 --name mall-admin \
--link mysql:db \
--link redis:redis \
-v /etc/localtime:/etc/localtime \
-v /mydata/app/admin/logs:/var/logs \
-d mall/mall-admin:1.0-SNAPSHOT

b. 开启防火墙

firewall-cmd --zone=public --add-port=8080/tcp --permanent
firewall-cmd –-reload

c. 验证访问接口

在浏览器访问首页:http://172.36.86.41:8080/ ,请根据实际情况输入对应的IP地址。

3. 前端项目部署

(1)prod.env.js文件的修改

a. 执行

cd /root/mall/mall-admin-web/config

b. 执行 vim prod.env.js 按“i”进入编辑模式,将BASE_API变量的IP地址替换成实际服务器IP地址。

(2)前端代码打包与部署

a. 打包代码

cd /root/mall/mall-admin-web/
npm install --unsafe-perm
npm run build

b. 压缩并部署到Nginx

cd /root/mall/mall-admin-web/
tar -czf dist.tar.gz dist
cp dist.tar.gz /mydata/nginx
cd /mydata/nginx
rm -rf html
tar -xzf dist.tar.gz
mv dist html
docker restart mall-admin
docker restart nginx

c. 验证页面

在浏览器访问首页并登录:http://172.36.86.41/ ,请根据实际情况输入对应的IP地址。

本页内容