Docker部署SpringBoot +Vue项目流程详解(含域名 + HTTPS)

这篇具有很好参考价值的文章主要介绍了Docker部署SpringBoot +Vue项目流程详解(含域名 + HTTPS)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

本次整体部署操作使用阿里云服务器,这里我选择的是香港地区2核2G ECS(可以省略域名备案操作)。

涉及到的中间件如下:

  • Nginx
  • MySQL
  • Redis
  • 后端项目
  • 前端项目

Docker部署SpringBoot +Vue项目流程详解(含域名 + HTTPS),docker,spring boot,vue.js,ssl,阿里云

1、选购服务器

首先登录到阿里云的官网,选购一台公网服务器,由于本次我部署项目体量比较小,所以这里选择的ECS服务器配置如下:

  • 系统:CentOS 7.9
  • 配置:2核2G(按量) + 公网ip
  • 地区:中国香港

选购完毕服务器后,将本次部署需要的安全组进行开放:
Docker部署SpringBoot +Vue项目流程详解(含域名 + HTTPS),docker,spring boot,vue.js,ssl,阿里云

2、部署 Docker

首先在阿里云服务器上安装好Docker和DockerCompose,在后续部署过程中需要通过Docker方式,具体安装步骤参考下述文章第1节

https://blog.csdn.net/weixin_46594796/article/details/122750009

通过下述命令可以判断是否安装成功:
Docker部署SpringBoot +Vue项目流程详解(含域名 + HTTPS),docker,spring boot,vue.js,ssl,阿里云

3、前端、后端项目打包

前端后端打包之前,需要将项目配置信息进行调整,主要是将前后端项目配置文件中的本地地址调整为你申请的阿里云ECS公网ip地址,后端配置举例:
Docker部署SpringBoot +Vue项目流程详解(含域名 + HTTPS),docker,spring boot,vue.js,ssl,阿里云
配置调整完毕后,需要前端代码和后端代码进行打包操作。

  • 针对前端:执行npm run build
    打包完成后,可以看到前端dist文件
    Docker部署SpringBoot +Vue项目流程详解(含域名 + HTTPS),docker,spring boot,vue.js,ssl,阿里云

  • 针对后端:执行mvn clean package -Dmaven.test.skip=true
    打包完成后,可以看到后端jar文件
    Docker部署SpringBoot +Vue项目流程详解(含域名 + HTTPS),docker,spring boot,vue.js,ssl,阿里云

后端jar前端dist文件夹中的内容上传到阿里云ECS根目录(~),然后按照下述操作进行:

# 创建文件夹
mkdir /opt/project
mkdir /opt/project/backend
mkdir /opt/project/ssl

mkdir /opt/project/nginx
mkdir /opt/project/nginx/html
mkdir /opt/project/nginx/log

mkdir /opt/project/mysql
mkdir /opt/project/mysql/conf
mkdir /opt/project/mysql/data

mkdir /opt/project/redis
mkdir /opt/project/redis/conf
mkdir /opt/project/redis/data

# 移动前后端项目文件
cd ~
mv project-test.jar /opt/project/backend
mv index.html /opt/project/nginx/html
mv static /opt/project/nginx/html

4、配置 Dockerfile

Dockerfile的作用是将后端SpringBoot的项目Jar包build成Docker镜像。
首先创建Dockerfile文件:

# 进入到backend目录
cd /opt/project/backend

# 创建Dockerfile文件
vim Dockerfile

将下述内容同步到Dockerfile中:

# 基础镜像:构建JDK8镜像依赖
FROM openjdk:8

# 作者
MAINTAINER 徐志斌

# 宿主机文件 COPY 镜像(类似COPY,不过COPY不能自动解压文件、访问网络资源)
ADD project-test.jar /project-test.jar

# 运行成容器时的端口
EXPOSE 9999

# 容器启动时执行(类似CMD)
ENTRYPOINT ["java", "-jar", "project-test.jar"]

构建SpringBoot项目jar镜像:

# docker build -t 镜像名 -f 文件名 工作目录
docker build -t project-test -f Dockerfile /opt/project/backend

构建成功后,通过命令docker images查看刚刚生成的镜像:
Docker部署SpringBoot +Vue项目流程详解(含域名 + HTTPS),docker,spring boot,vue.js,ssl,阿里云
这样就说明Dockerfile没有任何的问题,此时就可以通过命令将SpringBoot项目JAR镜像删除:

docker rmi 镜像id

5、配置 Nginx

进入目标目录,创建好Nginx配置文件:

# 进入目录
cd /opt/project/nginx

# 创建配置文件
vim nginx.conf

将下述配置复制到nginx.conf文件中(注意换成自己的公网ip):

worker_processes  1;

events {
  worker_connections  1024;
}

http {
  include       mime.types;
  default_type  application/octet-stream;
  sendfile        on;
  keepalive_timeout  65;
  server {
      listen       80;
      server_name  8.210.65.213;

      location / {
          root   /usr/share/nginx/html;
          try_files $uri $uri/ /index.html;
          index  index.html index.htm;
      }

      location /user/ {
          proxy_pass http://8.210.65.213:9999;
          proxy_redirect default;
          rewrite ^/user/(.*) /$1 break;
      }

      error_page   500 502 503 504  /50x.html;
      location = /50x.html {
          root   html;
      }
  }
}

6、配置 DockerCompose

DockerCompose的作用是批量操作Docker容器,这样就可以一键部署好我们的环境了。

首先进入到目标目录,创建docker-compose.yml文件:

# 进入目标目录,创建文件
cd /opt/project
vim docker-compose.yml

将下述内容复制到文件中:

version: '3'
 
services:
  # Nginx
  nginx:
    image: nginx:latest
    container_name: nginx
    ports:
      - 80:80
      - 443:443
    volumes:
      - /opt/project/nginx/html:/usr/share/nginx/html
      - /opt/project/nginx/log:/var/log/nginx
      - /opt/project/nginx/nginx.conf:/etc/nginx/nginx.conf
      - /opt/project/ssl:/etc/nginx/ssl
    privileged: true

  # MySQL
  mysql:
    image: mysql:8.0.27
    container_name: mysql
    environment:
      TZ: Asia/Shanghai
      MYSQL_ROOT_PASSWORD: Xuzhibin123.
      MYSQL_DATABASE: bingo
    ports:
       - 3306:3306
    volumes:
       - /opt/project/mysql/data:/var/lib/mysql
       - /opt/project/mysql/conf:/etc/mysql/conf.d
    privileged: true
    restart: always

  # Redis
  redis:
    image: redis:6.2.6
    container_name: redis
    ports:
      - 6379:6379
    environment:
      TZ: Asia/Shanghai
    privileged: true
    restart: always

  # 后端JAR
  backend-project:
    image: backend-project
    container_name: backend-project
    build: ./backend # 运行Dockerfile
    ports:
      - 9999:9999
    depends_on:  # mysql,redis启动后在启动
      - mysql
      - redis

6、启动 DockerCompose 完成部署

# 运行 docker-compose.yml
cd /opt/project
docker-compose up -d

此时就可以通过输入ip地址访问到部署完毕的SpringBoot + Vue项目了:
Docker部署SpringBoot +Vue项目流程详解(含域名 + HTTPS),docker,spring boot,vue.js,ssl,阿里云

7、【可选】域名 + SSL证书

注意:国内ECS服务器想要配置域名需要进行备案操作(时间非常久),所以我本篇文章我选择的ECS服务器地区为香港,这样可以省略掉域名备案操作!

关于配置域名和SSL证书流程请参考如下文章:
https://blog.csdn.net/weixin_46594796/article/details/130446464

注意:配置好域名后,需要将前端项目中的公网ip切换成域名地址!

最后 Nginx 大致如下:文章来源地址https://www.toymoban.com/news/detail-720901.html

worker_processes  1;

events {
  use epoll;
  worker_connections  1024;
}

http {
  include       mime.types;
  default_type  application/octet-stream;
  sendfile        on;
  keepalive_timeout  65;
 
  upstream backend {
     server 8.210.65.213:9999 max_fails=2 fail_timeout=30s;
  }

  # HTTP转为HTTPS
  server {
    listen       80;
    server_name  www.xuzhibin.top;
    rewrite ^(.*) https://www.xuzhibin.top;
  }

  server {
      listen       443 ssl;
      server_name  www.xuzhibin.top;

      ssl_certificate      /etc/nginx/ssl/xuzhibin.top.pem;
      ssl_certificate_key  /etc/nginx/ssl/xuzhibin.top.key;
      ssl_session_cache    shared:SSL:1m;
      ssl_session_timeout  5m;
      ssl_ciphers  HIGH:!aNULL:!MD5;
      ssl_prefer_server_ciphers  on;

      location / {
          root   /usr/share/nginx/html;
          try_files $uri $uri/ /index.html;
          index  index.html index.htm;
      }

      location ^~/user/ {
          proxy_pass http://backend;
      }

      error_page   500 502 503 504  /50x.html;
      location = /50x.html {
          root   html;
      }
  }
}

到了这里,关于Docker部署SpringBoot +Vue项目流程详解(含域名 + HTTPS)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • SpringBoot + Vue2项目打包部署到服务器后,使用Nginx配置SSL证书,配置访问HTTP协议转HTTPS协议

    配置nginx.conf文件,这个文件一般在/etc/nginx/...中,由于每个人的体质不一样,也有可能在别的路径里,自己找找... 证书存放位置,可自定义存放位置 两个文件 后端配置 把.pfx拷贝到resource下,然后配置一下yml

    2024年02月02日
    浏览(51)
  • 【微服务部署】五、Jenkins+Docker一键打包部署NodeJS(Vue)项目的Docker镜像步骤详解

      NodeJS(Vue)项目也可以通过打包成Docker镜像的方式进行部署,原理是先将项目打包成静态页面,然后再将静态页面直接copy到Nginx镜像中运行。 一、服务器环境配置   前面说明了服务器Nginx的安装和配置,这里稍微有些不同,但是因为此文是用Nginx镜像和前端镜像页面同

    2024年02月06日
    浏览(32)
  • 前端vue部署到nginx并且配置https安全证书全流程

            说明一下: 本人原本使用的是docker安装nginx通过挂载实现部署,但是出现了很多bug(例如部署安全证书后还是无法访问),所以困扰了很久,最后改为本地安装nginx,最终在不懈的努力下终于按照好了,特此记录一下。         一:整个流程:            

    2024年02月07日
    浏览(34)
  • 手把手从安装本地虚拟机,基于docker,部署springboot+vue项目(若依框架前后端分离版本演示),基于openjdk的dockerfile

    部署环境提供vm16,和centos7,其中把镜像改成.iso文件就可以了 阿里云链接: https://www.alipan.com/s/BTnpjuHWtEp 为什么用阿里云,不限速啊,秉持着开源白嫖的精神 新建虚拟机 选择镜像 创建用户 设置虚拟机存存放位置 默认下一步 自定义硬件 选了扩大一下内存,扩不扩无所谓 检查

    2024年01月16日
    浏览(53)
  • Https域名解析——腾讯云免费SSL证书申请流程

    最近购买了一台腾讯云服务器,采用腾讯免费域名解析,只是绑定成功http请求及www请求。网站地址为:http://kalehu.com https一直不能访问,一直以为腾讯云与阿里虚拟主机绑定一样,只需勾选一个选项,可以直接完成,后来发现思路是错误。服务器绑定https,需要申请SSL证书之

    2024年02月09日
    浏览(38)
  • Nginx配置springboot+vue项目http跳转https

    java生成证书 添加依赖 复制keystore到springboot资源目录,修改application.yml配置  启动项目 nginx配置 开启ssl     重启nginx -s reload 访问localhost:81将跳转到https://localhost/login?redirect=/index  

    2024年02月12日
    浏览(34)
  • nginx部署https域名

    目录 一、准备工作 二、部署项目 三、修改nginx的配置文件 1、首先你要有一台服务器,本篇文章是创建在腾讯云服务器的基础上的,仅供参考 2、在服务器上注册域名,这个域名注册等待审核时间较长,建议提早注册,在服务器的控制台搜索域名注册即可  3、在服务器上申请

    2024年02月08日
    浏览(32)
  • 项目打包并部署到Docker环境的完整流程

    使用前端构建工具(例如Webpack、Vue CLI、Create React App)将前端项目打包成静态文件。 创建一个名为 Dockerfile 的文件,内容如下: 3.使用以下命令构建Docker镜像: 4.运行以下命令启动前端容器: 5.现在可以通过浏览器访问 http://localhost 来查看部署的前端应用。 1.确保你的后端

    2024年02月14日
    浏览(38)
  • Jenkins + Docker 一键自动化部署 SpringBoot 应用最精简流程

    本文章实现最简单全面的 Jenkins + Docker + Spring Boot 一键自动部署项目。步骤齐全,少走坑路。 环境:CentOS7 + Git (Gitee) 实现步骤:在 Docker 安装 Jenkins,配置 Jenkins 基本信息,利用 Dockerfile 和 Shell 脚本实现项目自动拉取打包并运行。 1安装 Docker 安装社区版本 Docker CE 确保 yum 包

    2024年04月26日
    浏览(37)
  • 基于Docker和Springboot两种方式安装与部署Camunda流程引擎

    Camunda 相对于其他流程引擎的优势在于开源性、 BPMN 2.0 支持、可扩展性、轻量级和高性能,以及可观察性。并且 Camunda 支持独立平台的方式部署流程引擎,这更有利于分布式的项目。本文以 7.18.0 版本为例,介绍了: Docker Spring Boot 两种安装和部署 Camunda 流程引擎的方式。 D

    2024年03月16日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包