前后端部署筆記

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-nacosimage: nacos/nacos-server:v2.3.0build:context: ./nacosenvironment:- MODE=standalonevolumes:- ./nacos/logs:/home/nacos/logs- ./nacos/conf/application.properties:/home/nacos/conf/application.propertiesports:- "8848:8848"- "9848:9848"- "9849:9849"depends_on:- yizhanshi-mysqlmem_limit: 1000myizhanshi-mysql:container_name: yizhanshi-mysqlimage: mysql:8.0.30build:context: ./mysqlports:- "13306:3306"volumes:- ./mysql/conf/my.cnf:/etc/mysql/my.cnf- ./mysql/logs:/var/logs/mysql- ./mysql/data:/var/lib/mysqlcommand: ['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_176012mem_limit: 700myizhanshi-redis:container_name: yizhanshi-redisimage: redis:7.2build:context: ./redisports:- "16379:6379"volumes:- ./redis/redis.conf:/etc/redis/redis.conf- ./redis/data:/datamem_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-gatewayyizhanshi-gateway:container_name: yizhanshi-gatewaybuild:context: ./yizhanshi/gatewaydockerfile: dockerfileports:- "18080:8080"depends_on:- yizhanshi-redislinks:- yizhanshi-redismem_limit: 500myizhanshi-auth:container_name: yizhanshi-authbuild:context: ./yizhanshi/authdockerfile: dockerfileports:- "9200:9200"depends_on:- yizhanshi-redislinks:- yizhanshi-redismem_limit: 500myizhanshi-modules-system:container_name: yizhanshi-modules-systembuild:context: ./yizhanshi/modules/systemdockerfile: dockerfileports:- "9201:9201"depends_on:- yizhanshi-redis- yizhanshi-mysqllinks:- yizhanshi-redis- yizhanshi-mysqlmem_limit: 500myizhanshi-place:container_name: yizhanshi-placebuild:context: ./yizhanshi/modules/placedockerfile: dockerfileports:- "9202:9202"depends_on:- yizhanshi-mysqllinks:- yizhanshi-mysqlmem_limit: 500myizhanshi-course:container_name: yizhanshi-coursebuild:context: ./yizhanshi/modules/coursedockerfile: dockerfileports:- "9203:9203"depends_on:- yizhanshi-mysqllinks:- yizhanshi-mysqlmem_limit: 500myizhanshi-talent:container_name: yizhanshi-talentbuild:context: ./yizhanshi/modules/talentdockerfile: dockerfileports:- "9204:9204"depends_on:- yizhanshi-mysql- yizhanshi-redislinks:- yizhanshi-mysql- yizhanshi-redismem_limit: 500myizhanshi-lost:container_name: yizhanshi-lostbuild:context: ./yizhanshi/modules/lostdockerfile: dockerfileports:- "9205:9205"depends_on:- yizhanshi-mysqllinks:- yizhanshi-mysqlmem_limit: 500myizhanshi-modules-file:container_name: yizhanshi-modules-filebuild:context: ./yizhanshi/modules/filedockerfile: dockerfileports:- "9300:9300"mem_limit: 400mvolumes:- /usr/local/YiZhanShi/FileData:/usr/local/YiZhanShi/FileDatayizhanshi-visual-monitor:container_name: yizhanshi-visual-monitorbuild:context: ./yizhanshi/visual/monitordockerfile: dockerfileports:- "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/jarecho "begin copy bishe-auth "
cp ../target/bishe-auth.jar ./yizhanshi/auth/jarecho "begin copy yizhanshi-visual "
cp ../target/bishe-visual-monitor.jar  ./yizhanshi/visual/monitor/jarecho "begin copy bishe-modules-system "
cp ../target/bishe-modules-system.jar ./yizhanshi/modules/system/jarecho "begin copy yizhanshi-place "
cp ../target/yizhanshi-place.jar ./yizhanshi/modules/place/jarecho "begin copy yizhanshi-course "
cp ../target/yizhanshi-course.jar ./yizhanshi/modules/course/jarecho "begin copy yizhanshi-talent "
cp ../target/yizhanshi-talent.jar ./yizhanshi/modules/talent/jarecho "begin copy yizhanshi-lost "
cp ../target/yizhanshi-lost.jar ./yizhanshi/modules/lost/jarecho "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 --permanentfirewall-cmd --add-port=8080/tcp --permanentfirewall-cmd --add-port=8848/tcp --permanentfirewall-cmd --add-port=9848/tcp --permanentfirewall-cmd --add-port=9849/tcp --permanentfirewall-cmd --add-port=6379/tcp --permanentfirewall-cmd --add-port=3306/tcp --permanentfirewall-cmd --add-port=9100/tcp --permanentfirewall-cmd --add-port=9200/tcp --permanentfirewall-cmd --add-port=9201/tcp --permanentfirewall-cmd --add-port=9202/tcp --permanentfirewall-cmd --add-port=9203/tcp --permanentfirewall-cmd --add-port=9300/tcp --permanentservice 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之類的命令,重新打鏡像。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/14494.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/14494.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/14494.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

UPPAAL使用方法

UPPAAL使用方法 由于剛開始學習時間自動機及其使用方法,對UPPAAL使用不太熟悉,網上能找到的教程很少,摸索了很久終于成功實現一個小例子,所以記錄一下詳細教程。 這里用到的例子參考【UPPAAL學習筆記】1:基本使用示例…

專業級潤滑油,一站式批發服務

要為機械設備提供持久穩定的動力保障嗎?選擇我們的專業級潤滑油,讓您的設備運轉更順暢,效率更高。 我們專業從事潤滑油批發多年,以優質的產品、合理的價格和完善的服務贏得了廣大客戶的信賴。無論是汽車、機械還是工業設備&#x…

【Vue3】env環境變量的配置和使用(區分cli和vite)

原文作者:我輩李想 版權聲明:文章原創,轉載時請務必加上原文超鏈接、作者信息和本聲明。 文章目錄 前言一、env文件二、vue3cli加載env1..env配置2..dev配置(其他環境參考)3.package.json文件4.使用 三、vue3vite加載e…

【html5】03-新表單元素及屬性

目錄 1 引言 2 智能表單控件-type 3 表單屬性 form input 5 答疑--解決required自定義提示信息 1 引言 HTML5引入了一系列新的表單輸入類型,如email、url、number、range、date、time、datetime-local、month、week、search、color和tel等。這些新類型增強了表…

FFmpeg源碼:bytestream_get_byte函數解析

一、引言 FFmpeg源碼中經常使用到bytestream_get_byte這個函數,比如使用FFmpeg對BMP圖片進行解析,其源碼會調用函數bmp_decode_frame,而該函數內部會通過bytestream_get_byte讀取BMP 的header。本文講解函數bytestream_get_byte的作用和內部…

Spark SQL 中DataFrame DSL的使用

在上一篇文章中已經大致說明了DataFrame APi,下面我們具體介紹DataFrame DSL的使用。DataFrame DSL是一種命令式編寫Spark SQL的方式,使用的是一種類sql的風格語法。 文章鏈接: 一、單詞統計案例引入 import org.apache.spark.sql.{DataFrame, SaveMod…

在SpringBoot中添加自定義增強SpringEvent事件組件

場景說明:在使用SpringBoot時,總是要添加一大堆自定義事件,實現ApplicationEvent,來實現事件發送。 這樣寫代碼量非常大。為了方便和避免出錯,封裝自定義的模塊,快速實現泛型中調用SpringEvent實現事件。省…

Xinstall助力實現App間直接跳轉,提升用戶體驗

在移動互聯網時代,App已成為我們日常生活中不可或缺的一部分。然而,在使用各類App時,我們經常會遇到需要在不同App之間切換的情況,這時如果能夠直接跳轉,將會大大提升用戶體驗。而Xinstall正是這樣一款能夠幫助開發者實…

OpenCV 獲取 RTSP 攝像頭視頻流保存至本地

介紹 Java OpenCV 是一個強大的開源計算機視覺庫,它提供了豐富的圖像處理和分析功能,越來越多的應用需要使用攝像頭來獲取實時視頻流進行處理和分析。 在 Java 中使用 OpenCV 打開攝像頭的基本步驟如下: 確保已經安裝了OpenCV庫使用 OpenC…

Raylib 繪制自定義字體的一種套路

Raylib 繪制自定義字體是真的難搞。我的需求是程序可以加載多種自定義字體,英文中文的都有。 我調試了很久成功了! 很有用的參考,建議先看一遍: 瞿華:raylib繪制中文內容 個人筆記|Raylib 的字體使用 - …

W801 實現獲取天氣情況

看了小安派(AiPi-Eyes 天氣站)的源碼,感覺用W801也可以實現。 一、部分源碼 main.c #include "wm_include.h" #include "Lcd_Driver.h"void UserMain(void) {printf("\n user task \n");Lcd_Init();Lcd_Clea…

MySQL主從復制(五):讀寫分離

一主多從架構主要應用場景:讀寫分離。讀寫分離的主要目標是分攤主庫的壓力。 讀寫分離架構 讀寫分離架構一 架構一結構圖: 這種結構模式下,一般會把數據庫的連接信息放在客戶端的連接層,由客戶端主動做負載均衡。也就是說由客戶…

RabbitMQ 消息隊列安裝及入門

市面常見消息隊列中間件對比 技術名稱吞吐量 /IO/并發時效性(類似延遲)消息到達時間可用性可靠性優勢應用場景activemq萬級高高高簡單易學中小型企業、項目rabbitmq萬級極高(微秒)高極高生態好(基本什么語言都支持&am…

為什么MySQL推薦使用utf8mb4代替utf8?

前言 在MySQL數據庫的世界里,字符集的選擇直接影響著數據的存儲和檢索方式,尤其是對于多語言支持至關重要的應用而言。近年來,utf8mb4字符集逐漸成為MySQL中存儲Unicode字符的標準選擇,逐步取代了傳統的utf8字符集。本文將詳細探…

leetcode124 二叉樹中的最大路徑和-dp

題目 二叉樹中的 路徑 被定義為一條節點序列,序列中每對相鄰節點之間都存在一條邊。同一個節點在一條路徑序列中 至多出現一次 。該路徑 至少包含一個 節點,且不一定經過根節點。 路徑和 是路徑中各節點值的總和。 給你一個二叉樹的根節點 root &…

【Crypto】Rabbit

文章目錄 一、Rabbit解題感悟 一、Rabbit 題目提示很明顯是Rabbit加密,直接解 小小flag,拿下! 解題感悟 提示的太明顯了

redis核心面試題二(實戰優化)

文章目錄 10. redis配置mysql實戰優化[重要]11. redis之緩存擊穿、緩存穿透、緩存雪崩12. redis實現分布式session 10. redis配置mysql實戰優化[重要] // 最初實現OverrideTransactionalpublic Product createProduct(Product product) {productRepo.saveAndFlush(product);je…

MQTT 5.0 報文解析 05:DISCONNECT

歡迎閱讀 MQTT 5.0 報文系列 的第五篇文章。在上一篇中,我們已經介紹了 MQTT 5.0 的 PINGREQ 和 PINGRESP 報文。現在,我們將介紹下一個控制報文:DISCONNECT。 在 MQTT 中,客戶端和服務端可以在斷開網絡連接前向對端發送一個 DIS…

手把手教你搭建一個花店小程序商城

如果你是一位花店店主,想要為你的生意搭建一個精美的小程序商城,以下是你將遵循的五個步驟。 步驟1:登錄喬拓云平臺進入后臺 首先,你需要登錄喬拓云平臺的后臺管理頁面。你可以在電腦或移動設備上的瀏覽器中輸入喬拓云的官方網站…

2024.5.26 機器學習周報

目錄 引言 Abstract 文獻閱讀 1、題目 2、引言 3、創新點 4、Motivation 5、naive Lite-HRNet 6、Lite-HRNet 7、實驗 深度學習 解讀SAM(Segment Anything Model) 1、SAM Task 2、SAM Model 2.1、Patch Embedding 2.2、Positiona Embedding 2.3、Transformer …