Nginx + Docker Compose前后端分离部署到服务器过程记录
创始人
2024-09-26 17:49:29
0

一、采用Nginx部署前端VUE(Vite)

1、修改配置文件vite.config.ts,将本地环境改为开发环境
在这里插入图片描述
注意base处只能是‘/’ 不能是 ‘./'!在这里插入图片描述

  1. 对项目进行打包

在当前目录的终端执行:npm run build

若报错如下:

error TS6504: File '/Users/xiaochen/IdeaProjects/ChatViewer-frontend/src/components/chat/HeadPortrait.vue.js' is a JavaScript file. Did you mean to enable the 'allowJs' option?   The file is in the program because:     Matched by include pattern 'src/**/*' in 'tsconfig.vitest.json'  error TS6504: File '/Users/xiaochen/IdeaProjects/ChatViewer-frontend/src/components/gpt/ConversationCard.vue.js' is a JavaScript file. Did you mean to enable the 'allowJs' option?   The file is in the program because:     Matched by include pattern 'src/**/*' in 'tsconfig.vitest.json'  

则执行:npm run build-only
在当前项目的文件夹下可以看到dist文件夹,该文件夹里面的内容就是打包生成的。

3、将本地项目上传到服务器目录
将dist文件夹的文件上传到服务器前端项目所在的目录:/var/www/vue_app/(最好是统一在var/www目录下)

采用scp进行远程文件传输:scp 本地项目路径 服务器项目路径

scp -r /Users/xiaochen/IdeaProjects/ChatViewer-frontend/dist root@8.xxx.xxx.79:/var/www/vue_app/ 
  1. 安装nginx
//安装 sudo apt-get install nginx //启动服务 sudo systemctl start nginx //设置开机启动 sudo systemctl enable nginx // 检查安装是否成功 sudo nginx -t 

显示如下则表示安装成功!
在这里插入图片描述
5. 添加配置文件

在/etc/nginx/sites-available目录下创建一个新的文件,命名为vueapp, 然后编辑配置文件:

sudo nano /etc/nginx/sites-available/vueapp 

参考设置如下:

server {     listen 80;     server_name 8.130.xxx.xxx(服务器ip);      root /var/www/vue_app/dist(服务器前端项目目录);     index index.html;          #vue-router配置     location / {         try_files $uri $uri/ @router;         index index.html;     }     location @router {         rewrite ^.*$ /index.html last;     }     location ~ \.js$ {         root /var/www/vue_app/dist;         types { application/javascript js; }         try_files $uri =404;     }     location ~ \.css$ {         root /var/www/vue_app/dist;         types { text/css css; }         try_files $uri =404;     }     location /api/ {         proxy_pass http://localhost:8088/;         proxy_set_header Host $host;         proxy_set_header X-Real-IP $remote_addr;         proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;         proxy_set_header X-Forwarded-Proto $scheme;     }      error_page 404 /404.html;     location = /404.html {         internal;     } }  

注意以下两个设置:

server_name 8.130.xxx.xxx(服务器ip);  root /var/www/vue_app/dist(服务器前端项目目录);  location /api/  	proxy_pass http://localhost:8088/;(后端项目服务接口) 

重启nginx:
sudo systemctl reload nginx

访问8.130.xxx.xxx(服务器ip),如果显示成功则说明配置成功。

二、采用Docker compose 部署SpringBoot后端项目

  1. 打包项目
    采用Maven的打包方式,打包前面可以clean然后install再进行打包在这里插入图片描述
    打包后的文件在target目录下:
    在这里插入图片描述
  2. 上传jar包到服务器指定目录:/root/myapp
scp -r /Users/xiaochen/IdeaProjects/ChatViewer-main/ChatViewer-main/target/blog-0.0.1-SNAPSHOT.jar root@服务器ip/root/myapp 
  1. 在服务器项目所在根目录/root/myapp编写Dockerfile文件,指明jdk版本、工作目录、暴露端口
# 使用 OpenJDK 17 作为基础镜像 FROM openjdk:17-jdk-slim  # 设置工作目录 WORKDIR /app  # 复制项目的 jar 文件到容器中 COPY target/your-app.jar /app/app.jar  # 暴露应用端口 EXPOSE 8088  # 启动应用 ENTRYPOINT ["java", "-jar", "/app/app.jar"]  
  1. 在服务器项目所在根目录/root/myapp编写`docker-compose.yml 文件
    (我这里用到了MYSQL数据库、Redis、MinIO、RabbitMQ)
version: '3.3'  services:   app:     build: .     container_name: springboot_app     ports:       - "8080:8080"     environment:       - SPRING_DATASOURCE_URL=jdbc:mysql://db:3306/blog       - SPRING_DATASOURCE_USERNAME=root       - SPRING_DATASOURCE_PASSWORD=密码       - SPRING_REDIS_HOST=redis       - SPRING_REDIS_PORT=6379       - SPRING_REDIS_PASSWORD=密码       - RABBITMQ_HOST=rabbitmq       - MINIO_ENDPOINT=http://minio:9000       - MINIO_ACCESS_KEY=自己设定       - MINIO_SECRET_KEY=自己设定     depends_on:       - db       - redis       - rabbitmq       - minio    db:     image: mysql:8.0     container_name: mysql_db     restart: always     environment:       MYSQL_ROOT_PASSWORD: 123456                 # 设置 root 用户的密码       MYSQL_DATABASE: blog          # 创建的默认数据库       MYSQL_USER: 自己设定                   # 创建的数据库用户       MYSQL_PASSWORD: 自己设定       # 创建的数据库用户密码     ports:       - "3306:3306"     volumes:       - db_data:/var/lib/mysql    redis:     image: redis:6.2     container_name: redis_server     restart: always     ports:       - "6379:6379"    rabbitmq:     image: rabbitmq:3-management     container_name: rabbitmq_server     restart: always     ports:       - "5672:5672"       - "15672:15672" # RabbitMQ 管理控制台    minio:     image: minio/minio     container_name: minio_server     restart: always     ports:       - "9000:9000"     environment:       MINIO_ACCESS_KEY: 自己设定       MINIO_SECRET_KEY: 自己设定     command: server /data  volumes:   db_data:  
  1. 构建镜像启动服务
构建 Docker 镜像 docker-compose build 启动所有服务 docker-compose up -d 

6、查看日志,检查后端是否正常启动

docker-compose logs -f app 

相关内容

热门资讯

鸿蒙系统能否兼容安卓,开启跨平... 最近手机圈可是热闹非凡呢!华为的新操作系统鸿蒙系统一经推出,就引发了无数人的关注。不过,最让人好奇的...
安卓系统王者充值不了,安卓系统... 最近是不是你也遇到了安卓系统王者充值不成功的尴尬情况?别急,让我来帮你一探究竟,找出解决之道!充值难...
安卓手机 ubuntu系统下载... 你有没有想过,你的安卓手机可以变身成一个强大的工作利器呢?没错,就是那个我们每天不离手的安卓手机,现...
阻止安卓更新系统,如何有效阻止... 你知道吗?在这个科技飞速发展的时代,手机更新系统似乎成了我们生活中不可避免的一部分。但是,有些小伙伴...
安卓增强系统的软件,功能拓展与... 你知道吗?在安卓的世界里,有一个神奇的宝贝,它就是安卓增强系统的软件。这些软件就像魔法师一样,让你的...
安卓系统怎么使用gpt,智能交... 如何在安卓系统上使用GPT:一份详尽指南在数字化时代,人工智能(AI)已经渗透到我们生活的方方面面,...
小型安卓系统怎么安装,轻松上手... 你有没有想过,给你的安卓设备换换口味?别小看这个小动作,它能让你的手机焕发新生!今天,就让我来带你一...
安卓系统如何增加内存,轻松提升... 手机内存不够用,是不是让你头疼不已?别急,今天就来教你几招,让你的安卓手机内存瞬间“膨胀”起来!一、...
安卓系统NDK支持内录,基于安... 你有没有想过,你的安卓手机里那些酷炫的游戏或者应用,背后其实有着一套强大的技术支持呢?没错,就是安卓...
安卓系统作者是谁,揭开其创始人... 你有没有想过,那个陪伴你手机时光的安卓系统,它的背后是谁在默默耕耘呢?今天,就让我带你一探究竟,揭开...
安卓系统设置权限管理,全面解析... 亲爱的手机控们,你是否曾为手机里那些偷偷获取你隐私的APP而烦恼?别急,今天就来给你揭秘安卓系统设置...
安卓系统怎么加入热点,共享网络... 你是不是也和我一样,有时候手机信号不好,但又想分享网络给身边的亲朋好友呢?别急,今天就来教你怎么让你...
给苹果装上安卓系统,探索跨界融... 你有没有想过,如果给苹果手机装上安卓系统,会是怎样的景象呢?想象那熟悉的iOS界面突然变成了安卓的,...
安卓系统的双人游戏,双人游戏巅... 你有没有想过,在安卓手机上,两个人一起玩游戏是多么有趣的事情呢?想象你和你最好的朋友或者另一半,坐在...
最好的安卓系统市场,最佳系统版... 你有没有想过,手机里的系统就像是我们生活的城市,各有各的特色和魅力?今天,就让我带你走进安卓系统市场...
安卓系统出现刷机,重装系统无忧 最近你的安卓手机是不是突然变得有点儿“不听话”了?别急,别急,让我来给你揭秘一下安卓系统出现刷机的那...
原装导航改安卓系统,安卓系统改... 你有没有想过,你的原装导航系统其实也可以焕发第二春呢?没错,就是那个一直默默陪伴你的导航设备,现在它...
vue支持安卓系统吗,Vue支... 你有没有想过,为什么你的手机上那么多应用,而Vue.js却好像总是和安卓系统玩捉迷藏呢?今天,就让我...
安卓系统 防止文件修改,安卓系... 你有没有遇到过这种情况:手机里的文件突然被修改了,而你却一点头绪都没有?别担心,今天就来给你支几招,...
天游wep安卓系统,功能解析与... 你有没有听说过天游WEP安卓系统?这可是最近在手机圈里火得一塌糊涂的存在呢!想象你的手机就像是一个小...