前后端部署笔记

windows版:

如果傻呗公司让用win电脑部署,类似于我们使用笔记本做局域网服务器,社内使用。

1.安装win版的nginx、mysql、node、jdk等

2.nginx开机自启参考Nginx配置及开机自启动(Windows环境)_nginx开机自启动 windows-CSDN博客
Windows环境Nginx部署springboot+vue前后端分离项目_windows nginx配置前后端分离-CSDN博客

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  localhost;

        location / {
            root   /usr/local/YiZhanShi/yizhanshi-ui;
            try_files $uri $uri/ /index.html;
            index  index.html index.htm;
        }

        location /prod-api/{
            proxy_set_header Host $http_host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header REMOTE-HOST $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_pass http://yizhanshi-gateway:8080/;
        
        # 添加 CORS 头
        add_header 'Access-Control-Allow-Origin' '*';
        add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
        add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';
        add_header 'Access-Control-Expose-Headers' 'Content-Length,Content-Range';

            # 对预检请求响应
        if ($request_method = 'OPTIONS') {
        add_header 'Access-Control-Allow-Origin' '*';
        add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
        add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';
        add_header 'Access-Control-Max-Age' 1728000;
        add_header 'Content-Type' 'text/plain charset=UTF-8';
        add_header 'Content-Length' 0;
        return 204;
        }
        }

        # 避免actuator暴露
        if ($request_uri ~ "/actuator") {
            return 403;
        }

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

Nginx配置及开机自启动(Windows环境)_nginx开机自启动 windows-CSDN博客

3.java项目开机自启参考
win10环境中设置java开机自启动_java windows 稳定自启-CSDN博客
4.查看相关端口是否被占用就证自启成功
java:    netstat -ano | findstr 8092
nginx:   netstat -ano | findstr 80

linux版:

以docker为例
1.安装相关镜像
dockerfile:

# 基础镜像
FROM  openjdk:8-jre
# author
MAINTAINER hejiale

# 挂载目录
VOLUME /usr/local/YiZhanShi
# 创建目录
RUN mkdir -p /usr/local/YiZhanShi
# 指定路径
WORKDIR /usr/local/YiZhanShi
# 复制jar文件到路径
COPY ./jar/bishe-gateway.jar /usr/local/YiZhanShi/bishe-gateway.jar
# 启动网关服务
ENTRYPOINT ["java","-jar","bishe-gateway.jar"]
 # 基础镜像
FROM mysql:8.0.30
# author
MAINTAINER hejiale

# 执行sql脚本
ADD ./db/*.sql /docker-entrypoint-initdb.d/


# 基础镜像
FROM nacos/nacos-server:v2.3.0
# author
MAINTAINER hejiale

# 复制conf文件到路径
COPY ./conf/application.properties /home/nacos/conf/application.properties



# 基础镜像
FROM nginx
# author
MAINTAINER ruoyi

# 挂载目录
VOLUME /home/ruoyi/projects/yizhanshi-ui
# 创建目录
RUN mkdir -p /home/ruoyi/projects/yizhanshi-ui
# 指定路径
WORKDIR /home/ruoyi/projects/yizhanshi-ui
# 复制conf文件到路径
COPY ./conf/nginx.conf /etc/nginx/nginx.conf
# 复制html文件到路径
COPY ./html/dist /home/ruoyi/projects/yizhanshi-ui


# 基础镜像
FROM redis:7.2
# author
MAINTAINER hejiale

# 挂载目录
VOLUME /usr/local/YiZhanShi/redis
# 创建目录
RUN mkdir -p /usr/local/YiZhanShi/redis
# 指定路径
WORKDIR /usr/local/YiZhanShi/redis
# 复制conf文件到路径
COPY ./conf/redis.conf /usr/local/YiZhanShi/redis/redis.conf


2.配置docker-compose.yml启动镜像

# 使用时,用容器名称:容器端口号访问
version : '3.8'
services:
  yizhanshi-nacos:
    container_name: yizhanshi-nacos
    image: nacos/nacos-server:v2.3.0
    build:
      context: ./nacos
    environment:
      - MODE=standalone
    volumes:
      - ./nacos/logs:/home/nacos/logs
      - ./nacos/conf/application.properties:/home/nacos/conf/application.properties
    ports:
      - "8848:8848"
      - "9848:9848"
      - "9849:9849"
    depends_on:
      - yizhanshi-mysql
    mem_limit: 1000m

  yizhanshi-mysql:
    container_name: yizhanshi-mysql
    image: mysql:8.0.30
    build:
      context: ./mysql
    ports:
      - "13306:3306"
    volumes:
      - ./mysql/conf/my.cnf:/etc/mysql/my.cnf
      - ./mysql/logs:/var/logs/mysql
      - ./mysql/data:/var/lib/mysql
    command: [
          'mysqld',
          '--innodb-buffer-pool-size=100M',
          '--character-set-server=utf8mb4',
          '--collation-server=utf8mb4_unicode_ci',
          '--default-time-zone=+8:00',
          '--lower-case-table-names=1'
        ]
    environment:
      MYSQL_DATABASE: 'yizhanshi-system'
      MYSQL_ROOT_PASSWORD: Nwafu_176012
    mem_limit: 700m

  yizhanshi-redis:
    container_name: yizhanshi-redis
    image: redis:7.2
    build:
      context: ./redis
    ports:
      - "16379:6379"
    volumes:
      - ./redis/redis.conf:/etc/redis/redis.conf
      - ./redis/data:/data
    mem_limit: 400m

#  yizhanshi-nginx:
#    container_name: yizhanshi-nginx
#    image: nginx
#    build:
#      context: ./nginx
#    ports:
#      - "80:80"
#    volumes:
#      - ./nginx/html/dist:/home/yizhanshi/projects/yizhanshi-ui
#      - ./nginx/conf/nginx.conf:/etc/nginx/nginx.conf
#      - ./nginx/logs:/var/log/nginx
#      - ./nginx/conf.d:/etc/nginx/conf.d
#    depends_on:
#      - yizhanshi-gateway
#    links:
#      - yizhanshi-gateway
  yizhanshi-gateway:
    container_name: yizhanshi-gateway
    build:
      context: ./yizhanshi/gateway
      dockerfile: dockerfile
    ports:
      - "18080:8080"
    depends_on:
      - yizhanshi-redis
    links:
      - yizhanshi-redis
    mem_limit: 500m

  yizhanshi-auth:
    container_name: yizhanshi-auth
    build:
      context: ./yizhanshi/auth
      dockerfile: dockerfile
    ports:
      - "9200:9200"
    depends_on:
      - yizhanshi-redis
    links:
      - yizhanshi-redis
    mem_limit: 500m

  yizhanshi-modules-system:
    container_name: yizhanshi-modules-system
    build:
      context: ./yizhanshi/modules/system
      dockerfile: dockerfile
    ports:
      - "9201:9201"
    depends_on:
      - yizhanshi-redis
      - yizhanshi-mysql
    links:
      - yizhanshi-redis
      - yizhanshi-mysql
    mem_limit: 500m

  yizhanshi-place:
    container_name: yizhanshi-place
    build:
      context: ./yizhanshi/modules/place
      dockerfile: dockerfile
    ports:
      - "9202:9202"
    depends_on:
      - yizhanshi-mysql
    links:
      - yizhanshi-mysql
    mem_limit: 500m

  yizhanshi-course:
    container_name: yizhanshi-course
    build:
      context: ./yizhanshi/modules/course
      dockerfile: dockerfile
    ports:
      - "9203:9203"
    depends_on:
      - yizhanshi-mysql
    links:
      - yizhanshi-mysql
    mem_limit: 500m

  yizhanshi-talent:
    container_name: yizhanshi-talent
    build:
      context: ./yizhanshi/modules/talent
      dockerfile: dockerfile
    ports:
      - "9204:9204"
    depends_on:
      - yizhanshi-mysql
      - yizhanshi-redis
    links:
      - yizhanshi-mysql
      - yizhanshi-redis
    mem_limit: 500m

  yizhanshi-lost:
    container_name: yizhanshi-lost
    build:
      context: ./yizhanshi/modules/lost
      dockerfile: dockerfile
    ports:
      - "9205:9205"
    depends_on:
      - yizhanshi-mysql
    links:
      - yizhanshi-mysql
    mem_limit: 500m

  yizhanshi-modules-file:
    container_name: yizhanshi-modules-file
    build:
      context: ./yizhanshi/modules/file
      dockerfile: dockerfile
    ports:
      - "9300:9300"
    mem_limit: 400m
    volumes:
    - /usr/local/YiZhanShi/FileData:/usr/local/YiZhanShi/FileData

  yizhanshi-visual-monitor:
    container_name: yizhanshi-visual-monitor
    build:
      context: ./yizhanshi/visual/monitor
      dockerfile: dockerfile
    ports:
      - "9100:9100"
    mem_limit: 400m

3.编写deploy.sh脚本或者copy.sh脚本,做自动化部署

copy.sh

#!/bin/sh

# 复制项目的文件到对应docker路径,便于一键生成镜像。
usage() {
	echo "Usage: sh copy.sh"
	exit 1
}


# copy sql
#echo "begin copy sql "
#cp ../sql/yizhanshi-system-202403031520.sql ./mysql/db
#cp ../sql/yizhanshi-nacos-config-202403031522.sql ./mysql/db

# copy html
#echo "begin copy html "
#cp -r ../yizhanshi-ui/dist/** ./nginx/html/dist


# copy jar
echo "begin copy bishe-gateway "
cp ../target/bishe-gateway.jar ./yizhanshi/gateway/jar

echo "begin copy bishe-auth "
cp ../target/bishe-auth.jar ./yizhanshi/auth/jar

echo "begin copy yizhanshi-visual "
cp ../target/bishe-visual-monitor.jar  ./yizhanshi/visual/monitor/jar

echo "begin copy bishe-modules-system "
cp ../target/bishe-modules-system.jar ./yizhanshi/modules/system/jar

echo "begin copy yizhanshi-place "
cp ../target/yizhanshi-place.jar ./yizhanshi/modules/place/jar

echo "begin copy yizhanshi-course "
cp ../target/yizhanshi-course.jar ./yizhanshi/modules/course/jar

echo "begin copy yizhanshi-talent "
cp ../target/yizhanshi-talent.jar ./yizhanshi/modules/talent/jar

echo "begin copy yizhanshi-lost "
cp ../target/yizhanshi-lost.jar ./yizhanshi/modules/lost/jar

echo "begin copy bishe-modules-file "
cp ../target/bishe-modules-file.jar ./yizhanshi/modules/file/jar
#
#echo "begin copy yizhanshi-modules-job "
#cp ../yizhanshi-modules/yizhanshi-job/target/yizhanshi-modules-job.jar ./yizhanshi/modules/job/jar
#
#echo "begin copy yizhanshi-modules-gen "
#cp ../yizhanshi-modules/yizhanshi-gen/target/yizhanshi-modules-gen.jar ./yizhanshi/modules/gen/jar

deploy.sh

#!/bin/sh
#删除镜像
#docker rmi docker-yizhanshi-modules-system docker-yizhanshi-talent:latest docker-yizhanshi-auth docker-yizhanshi-lost docker-yizhanshi-place docker-yizhanshi-course:latest  docker-yizhanshi-gateway docker-yizhanshi-modules-file:latest
# 使用说明,用来提示输入参数
usage() {
	echo "Usage: sh 执行脚本.sh [port|base|modules|stop|rm]"
	exit 1
}

# 开启所需端口
port(){
	firewall-cmd --add-port=80/tcp --permanent
	firewall-cmd --add-port=8080/tcp --permanent
	firewall-cmd --add-port=8848/tcp --permanent
	firewall-cmd --add-port=9848/tcp --permanent
	firewall-cmd --add-port=9849/tcp --permanent
	firewall-cmd --add-port=6379/tcp --permanent
	firewall-cmd --add-port=3306/tcp --permanent
	firewall-cmd --add-port=9100/tcp --permanent
	firewall-cmd --add-port=9200/tcp --permanent
	firewall-cmd --add-port=9201/tcp --permanent
	firewall-cmd --add-port=9202/tcp --permanent
	firewall-cmd --add-port=9203/tcp --permanent
	firewall-cmd --add-port=9300/tcp --permanent
	service firewalld restart
}

# 启动基础环境(必须)
base(){
	docker-compose up -d yizhanshi-mysql yizhanshi-redis yizhanshi-nacos
}

# 启动程序模块(必须)
modules(){
	docker-compose up -d yizhanshi-modules-file yizhanshi-gateway yizhanshi-auth yizhanshi-modules-system yizhanshi-place yizhanshi-course yizhanshi-talent yizhanshi-lost
}
visual(){
	docker-compose up -d yizhanshi-visual-monitor
}
# 关闭所有环境/模块
stop(){
	docker-compose stop
}
# 关闭基础环境/模块
stopNacos(){
	docker-compose stop yizhanshi-nacos
}
# 关闭业务环境/模块
stopBusiness(){
	docker-compose stop yizhanshi-modules-file yizhanshi-gateway yizhanshi-auth yizhanshi-modules-system yizhanshi-place yizhanshi-lost   yizhanshi-course yizhanshi-talent
}
stopVisual(){
	docker-compose stop yizhanshi-visual-monitor
}

# 删除所有环境/模块
rm(){
	docker-compose rm
}
# 删除基础环境/模块
rmNacos(){
	docker-compose rm yizhanshi-nacos
}
# 删除所有环境/模块
rmBusiness(){
	docker-compose rm yizhanshi-modules-file yizhanshi-gateway yizhanshi-auth yizhanshi-modules-system yizhanshi-place yizhanshi-course yizhanshi-talent yizhanshi-lost  yizhanshi-visual-monitor
}
rmVisual(){
	docker-compose rm yizhanshi-visual-monitor
}

# 根据输入参数,选择执行对应方法,不输入则执行使用说明
case "$1" in
"port")
	port
;;
"base")
	base
;;
"modules")
	modules
;;
"visual")
	visual
;;
"stop")
	stop
;;
"stopNacos")
	stopNacos
;;
"stopBusiness")
	stopBusiness
;;
"stopVisual")
	stopVisual
;;
"rm")
	rm
;;
"rmNacos")
	rmNacos
;;
"rmBusiness")
	rmBusiness
;;
"rmVisual")
	rmVisual
;;
*)
	usage
;;
esac

4.运行只需要,先在copy.sh和deploy.sh文件夹下进行命令
sh copy.sh -> sh deploy.sh  base/modules 即可
5.结构:

注意:如果条件不允许前后端局域网内开发,每次都需要部署,每次上传新jar包时,必须先删除镜像(docker rmi yizhanshi-gateway:latest),再进行sh deploy.sh modules之类的命令,重新打镜像。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/651059.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

学习100个Unity Shader (18) --- 几何着色器(Geometry Shader)

文章目录 概述编写格式举例应用举例(用预制体球的每个顶点画一个立方体)参考 概述 vertex shader --> [geometry shader] --> fragment shader。[]: 可选阶段。输入图元 —> geometry shader —> 其他图元 编写格式 [maxcertexcount(N)] …

源码编译安装LAMP与部署

目录 一、LAMP架构的简述 1.LAMP搭建时各组件安装顺序 二、编译安装Apache httpd服务 1.关闭防火墙,将安装Apache所需软件包传到/opt目录下 2.安装环境依赖包​编辑 3.配置软件模块 4.编译及安装 5.优化配置文件路径,并把httpd服务的可执行程序文…

2024斯佩菈音乐剧暑假训练营 30天创造奇迹培育坚强自信好少年

以声问本,素质教育,融会中西,知行合一。音乐是生活的灵魂,艺术的真正意义在于使人幸福,得到鼓舞和力量。多一把衡量的尺子,就会多出一批好学生。 相对学校语数英等学科教育,孩子心灵成长方面很…

新建gitee项目关联idea中的springboot项目

新建项目关联仓库步骤 以gitee为例新建项目 进入gitee新建项目 新建项目后进入复制项目地址 可以直接拉取本项目然后再这个目录下创建各种功能,我习惯于以下步骤。 下一步再idea新建springboot项目 我使用的是idea2023 选择Manager remote 点击加号 新建一个远…

1+x(Java)中级题库易混淆理论题(二)

冷备份实质就是数据库相关文件的复制 System.in是字节流 Map集合中的key是无序的 protected不能用于修饰类 接口中所有抽象方法默认使用public修饰 DML操作有:INSERT UPDATE DELETE SQL 语句中进行 group by 分组时,可以不写 where 子句 使…

什么是HTTP代理?适用于哪些场景?

HTTP代理是一种网络代理服务器,它主要用于处理HTTP协议的请求和响应。HTTP代理充当客户端(如浏览器)和目标服务器之间的中介,允许客户端通过代理服务器来发送HTTP请求,并接收来自服务器的响应。HTTP代理可以分为正向代…

C语言文件编程

C语言文件编程 第一部分 基本概念 1、Linux文件类型 1.-普通文件:存在于外部存储器中,用于存储普通数据。 1.txt 1.c 1.mp3 1.mp4 2.d目录文件:用于存放目录项,是文件系统管理的重要文件类型。 文件夹 3.p管道文件&#x…

LDRA Testbed(TBrun)软件单元测试_操作指南

系列文章目录 LDRA Testbed软件静态分析_操作指南 LDRA Testbed软件静态分析_自动提取静态分析数据生成文档 LDRA Testbed软件静态分析_Jenkins持续集成_(1)自动进行静态分析的环境搭建 LDRA Testbed软件静态分析_Jenkins持续集成_(2)配置邮件自动发送静态分析结果 LDRA Testb…

探索循环逻辑:for逻辑分支与容器遍历的深度剖析

新书上架~👇全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我👆,收藏下次不迷路┗|`O′|┛ 嗷~~ 目录 一、引言:for逻辑与循环体的奥秘 二、for逻辑与循环体的结合使用 1. 函数与循环…

Python计算回归拟合各项指标

0、各项回归指标简介 Relative Root Mean Squared Error(RRMSE):The RRMSE normalizes the Root Mean Squared Error (RMSE) by the mean of observations. It goes from 0 to infinity. The lower the better the prediction performance.T…

电脑不能远程桌面连接不上,电脑无法建立远程桌面连接如何解决?

电脑无法建立远程桌面连接的问题,通常涉及到多个层面的因素,包括但不限于网络设置、系统配置、防火墙设置以及服务状态等。以下是一些专业性的解决方案,以帮助您解决这一问题。 首先,我们需要检查网络连接。远程桌面连接需要稳定的…

Day08:CSS 高级

目标:掌握定位的作用及特点;掌握 CSS 高级技巧 一、定位 作用:灵活的改变盒子在网页中的位置 实现: 1.定位模式:position 2.边偏移:设置盒子的位置 leftrighttopbottom 水平方向偏移:left、…

电子商务网站(网上商店PetShop)

PetShop是一个范例,微软用它来展示.Net企业系统开发的能力。PetShop随着版本的不断更新,至现在基于.Net2.0的PetShop 4.0为止,整个设计逐渐变得成熟而优雅,有很多可以借鉴之处。PetShop是一个小型的项目,系统架构与代码…

【软件设计师】——7.软件工程基础

目录 7.1 软件工程概述 7.2 需求分析 7.3 软件设计 7.4 软件开发方法及模型 7.4.1 软件开发方法 7.4.2 软件开发模型 7.5 软件测试 7.6 软件维护 7.7 软件质量保证 7.7.1 软件质量特性 7.7.2 程序质量评审 7.7.3 设计质量评审 7.8 软件过程改进 7.9 项目管理 7.1 …

【制作100个unity游戏之26】unity2d横版卷轴动作类游13(附带项目源码)

最终效果 系列导航 文章目录 最终效果系列导航前言存储点灯光后处理存储位置信息存储更多数据存储场景信息持久化存储数据引入Unity 的可序列化字典类调用 游戏结束源码完结 前言 欢迎来到【制作100个Unity游戏】系列!本系列将引导您一步步学习如何使用Unity开发各…

Appium系列(2)元素定位工具appium-inspector

背景 如实现移动端自动化,依赖任何工具时,都需要针对于页面中的元素进行识别,通过识别到指定的元素,对元素进行事件操作。 识别元素的工具为appium官网提供的appium-inspector。 appium-inspector下载地址 我这里是mac电脑需要下…

使用numpy手写一个神经网络

本文主要包含以下内容: 推导神经网络的误差反向传播过程使用numpy编写简单的神经网络,并使用iris数据集和california_housing数据集分别进行分类和回归任务,最终将训练过程可视化。 1. BP算法的推导过程 1.1 导入 前向传播和反向传播的总体…

编程-辅助工具-Git下载

文章目录 1、前言2、Git官网地址3、迅雷下载 1、前言 采用Git能下载github上的代码,其下载是采用官网下载的,但是下载速度比较慢,网上也推荐了镜像的方式,但是有些链接失效了,突然有一天想起用迅雷是不是合适&#xf…

在通过跨网文件交换时,如何保障科研结构核心研究数据?

当今科研领域,数据如同生命线,支撑着每一个突破性发现的诞生。随着国际合作的加深,跨网文件交换成了常态,但这也为科研机构的核心研究数据安全带来了一系列挑战。想象一下,那些精心搜集和分析的宝贵数据,在…

OpenBayes 教程上新 |全球首个开源的文生视频 DiT 模型!对标 Sora,保姆级 Latte 文生视频使用指南

小朋友不爱背诗怎么办?《千秋诗颂》试试看。 2 月 26 日,中国首部文生视频 AI 系列动画《千秋诗颂》于 CCTV-1 频道正式播出,这部动画由上海人工智能实验室和「央妈」(中央广播电视总台)强强联手,借助「央视…