全栈式部署:SpringCloud 微服务+Docker + Vue + nginx 前后端一站式部署

本文详细介绍了如何在CentOS服务器上,从零开始部署一套全栈应用,包括SpringCloud微服务、Docker、MySQL、Redis、RabbitMQ和Vue前端,以及使用nginx作为反向代理。首先进行服务器环境准备,然后部署后端服务,通过Dockerfile自动化部署,并编写脚本简化操作,最后部署前端项目并配置nginx。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文将带大家从一台全新的 CentOS 服务器开始,部署一套完整的前后端分离项目。操作步骤非常详细,新手友好型文章~

后端技术栈:SpringCloud 微服务架构 + Redis + RabbitMQ + MySql;

前端技术栈:Vue + ElementUI;

部署工具:后端用 Docker 容器化部署,并把命令封装成脚本自动执行;前端用 Nginx 做代理。

一、前期准备

系统版本为:CentOS 7.6 64位。

1.1 连接服务器

要对远程服务器进行操作,首先要连上服务器才行。打开命令行工具,输入以下命令,再输入服务器实例的密码,即可远程连接到服务器。

ssh root@xxx.xx.xx.xx

@ 之后是服务器的公网 ip,假如服务器 ip 地址为:120.456.78.123,那么连接服务器的命令为:

ssh root@120.456.78.123

敲回车之后会让输入密码,输入正确的密码即可。

1.2 安装 Docker

Docker 容器化部署的优点就不多说了,直接上干货如何安装 Docker。

下面直接把代码框里的命令拷贝到命令行执行就可以。

先移除旧版本(如果有):

sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-selinux \
                  docker-engine-selinux \
                  docker-engine

安装一些必要的工具:

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

添加软件源信息:

sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

更新 yum 缓存:

sudo yum makecache fast

安装 Docker-ce:

sudo yum -y install docker-ce

启动 Docker 后台服务

sudo systemctl start docker

测试运行 hello-world(这步可要可不要,目的是验证身份安装 Docker 成功,如果成功会打印出 Hello World)

docker run hello-world

1.3 安装 mysql

拉取 mysql5.7 版本的镜像

docker pull mysql:5.7

运行 MySql

docker run -p 3306:3306 --name mysql -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7

命令说明:

  • -p 3306:3306:将容器的 3306 端口映射到主机的 3306 端口。
  • -v $PWD/conf:/etc/mysql/conf.d:将主机当前目录下的 conf/my.cnf 挂载到容器的 /etc/mysql/my.cnf。
  • -v $PWD/logs:/logs:将主机当前目录下的 logs 目录挂载到容器的 /logs。
  • -v $PWD/data:/var/lib/mysql :将主机当前目录下的data目录挂载到容器的 /var/lib/mysql 。
  • **-e MYSQL_ROOT_PASSWORD=123456:**初始化 root 用户的密码。

注意在运行之前切换到合适的目录,因为 MySql 容器映射到本机的目录是映射的当前目录的相对目录。比如当前目录为 /root/abc ,那执行完上面的命令后,会在 /root/abc 下创建 MySql 挂载出来的目录和文件。

1.4 安装 redis

也可以直接执行运行命令,如果系统检测到没有安装此镜像,则会拉取安装,再运行。

下载并运行 redis:4.0.8 :

docker run -p 6379:6379 -t -dit redis:4.0.8

1.5 安装 RabbitMQ

跟上面一样也是直接执行运行命令安装并运行 rabbitmq:3.7.7

docker run -d --hostname my-rabbit -p 5672:5672 -p 15672:15672 rabbitmq:3.7.7-management

到此部署微服务后端项目的前期环境准备工具已经做完。如果要部署前端还需要安装 Nginx,这个在前端部署的章节再讲。

二、后端部署

部署后端需要做的工作有两个,一个是修改每个微服务模块的配置文件 application.yml ,另一个是编写 Dockerfile

先看目录结构:

image.png

一共有 5 个模块,其中 common 是纯 java 代码用于各模块公共代码的提取,剩下四个每个是一个独立的微服务模块,所以我们要部署 eurekausereducationgateway 四个模块,也就是最后会运行四个独立的 docker 容器。

具体的业务逻辑就不做过多说明了,本文只讲部署。

2.1 配置文件 application.yml

为了本地调试和服务器部署互不影响,我们把原来的 application.yml 拆分为三个文件:

  • application.yml :总配置,指定应该用下面哪个配置
  • application-dev.yml :开发环境配置
  • application-pro.yml :生成环境配置

另外为了方便,把 Dockerfile 也放到同级目录下。如图:

image.png

下面是三个配置文件的代码:

application.yml

spring:
  profiles:
    active: pro

application-dev.yml

eureka:
  client:
    service-url:
      defaultZone: http://localhost:8761/eureka/
  instance:
    prefer-ip-address: true

server:
  port: 8899

spring:
  application:
    name: education
  datasource
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值