使用Docker+Nginx部署電商平臺項目(服務端+管理端+商城)

1.項目背景:

本項目作為小商場系統,涵蓋內容如下:
litemall = Spring Boot后端 + Vue管理員前端 + 微信小程序用戶前端 + Vue用戶移動端

1.1項目架構:

在這里插入圖片描述

1.2項目技術棧:

在這里插入圖片描述
本項目可以使用window運行jar包本地部署,也可以實現服務器直接打包部署,也可以實現docker打鏡像部署運行。本篇主要介紹如何在docker上打鏡像部署,docker鏡像部署有點有很多,最主要的一點還是對環境和架構要求較少,可以直接使用自己開發時定義的版本。那么話不多說直接開始介紹。

2.Docker部署

2.1準備環境

首先我們需要安裝docker以及docker-compose 這些步驟我就不多贅述,網上很多教程,新手小白可以跳轉下面連接邊安裝邊學習:docker安裝詳細介紹
本項目除了配置文件的服務,還需要安裝mysql,如果安裝過拉取過mysql鏡像則可以直接把docker-compose的mysql拉取配置刪除即可 (像我這樣):
在這里插入圖片描述

2.2 項目打包

1. 在服務器或者開發機打包項目到docker;

 cd litemallcat ./litemall-db/sql/litemall_schema.sql > ./docker/db/init-sql/litemall.sqlcat ./litemall-db/sql/litemall_table.sql >> ./docker/db/init-sql/litemall.sqlcat ./litemall-db/sql/litemall_data.sql >> ./docker/db/init-sql/litemall.sqlcd ./litemall-adminnpm install --registry=https://registry.npm.taobao.orgnpm run build:depcd ..mvn clean packagecp -f ./litemall-all/target/litemall-all-*-exec.jar ./docker/litemall/litemall.jar

這里的工作是:
把數據庫文件拷貝到docker/db文件夾
修改litemall文件夾下面的*.yml外部配置文件,當litemall-all模塊啟動時會 加載外部配置文件,而覆蓋默認jar包內部的配置文件。 例如,配置文件中一些地方需要設置成遠程服務器的IP地址
編譯litemall-admin項目
編譯litemall-all模塊,同時把litemall-admin編譯得到的靜態文件拷貝到 litemall-all模塊的static目錄(因為我是直接通過sftp上傳的dist包,所以這里沒有給出,大家自己把打好的dist包上傳到服務器就行)
在這里插入圖片描述
此時docker部署包結構如下:

  • bin:
    存放遠程服務器運行的腳本,包括deploy.sh腳本和reset.sh腳本
  • db:
    存放litemall數據庫文件
  • litemall:
    存放遠程服務器運行的代碼,包括litemall-all二進制可執行包和litemall外部配置文件
  • util:
    存放開發服務器運行的腳本,包括package.sh腳本和lazy.sh腳本。 由于是本地開發服務器運行,因此開發者可以不用上傳到遠程服務器。
  • docker-compose.yml:
    docker-compose配置腳本,運行docker-compose命令會
    2. 打一個本地鏡像以便生產環境部署(更穩定安全)
    首先進到docker文件夾
    在這里插入圖片描述
    由于我的Dockerfile在litemall文件夾里存放,所以打鏡像命令要這樣寫:
docker bulidx build -t litemall:1.0.0 ./litemall

打成鏡像如下
在這里插入圖片描述
litemal-front代表前端鏡像,后面就不在重復寫了。
docker-compose文件配置如下:

version: '3'
services:litemall:image: litemall:1.0.0 #使用已經打好的鏡像container_name: litemallports:- "8080:8080"volumes:- ./litemall/storage:/storage- ./litemall/logs:/logs- ./litemall/backup:/backup- /etc/localtime:/etc/localtimeenvironment:- TZ=Asia/Shanghairestart: always  #自啟動

2.3啟動:

docker compose up -d
查看成功如下:
在這里插入圖片描述
到這里后端服務已經部署好了,接下來是前端服務,我通過nginx代理,然后再把nginx打到鏡像啟動。

3.Nginx代理前端

3.1 Nginx安裝

這里還是不提供安裝方法,提供鏈接如下:Nginx安裝實戰

3.2 上傳dist包

默認在/usr/share/nginx/html,后面配置文件路徑要保持一致
在這里插入圖片描述

3.3 Nginx配置

如果通過yum安裝nginx,默認在/etc/nginx/nginx.conf配置,主要是替換代理server:

server {listen       80;server_name  192.168.136.160;# 管理后臺:訪問 http://ip/admin/ location /admin {alias /usr/share/nginx/html/admin/dist;index index.html;try_files $uri $uri/ /index.html;}# 商城前端:訪問 http://ip/shop/ location /shop {alias /usr/share/nginx/html/shop/dist;index index.html;try_files $uri $uri/ /index.html;}# 后端接口轉發:訪問 http://ip/api/... location /api/ {proxy_pass http://192.168.136.160:8080/;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;}error_page 404 =200 /admin/index.html;}

這時啟動nginx已經可以訪問

systemctl start nginx

接下來使用docker compose up -d
打到鏡像中
訪問http:/ip/shop如下:
在這里插入圖片描述
訪問http:/ip/admin如下:
在這里插入圖片描述
至此已經完成,但是項目仍有一點小bug,應該是我自己的問題,如下:
在這里插入圖片描述
正在跟進中,如果有大佬懂這個問題,可以幫幫我,謝謝。祝大家每日都好運,每天都進步,加油!

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

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

相關文章

Java網絡編程入門:從基礎原理到實踐(二)

目錄 1. 網絡編程基礎:搞懂設備通信的底層邏輯 1.1 為啥需要網絡編程?—— 讓設備 “互通有無” 1.2 什么是網絡編程?—— 給數據 “定規矩、找路線” 1.3 網絡編程的基本概念:理清通信里的角色和流程 1.3.1 發送端和接收端 …

XSS內容分享

反射型XSS :反射型XSS 是非持久性、參數型的跨站腳本。反射型XSS 的JS 代碼在Web 應用的參數(變量)中,如搜索框的反射型XSS。在搜索框中,提交PoC[scriptalert(/xss/)/script],點擊搜索,即可觸發…

電線桿距離居民區的安全距離【重要!!!】

10kV架空電線安全距離購房指南 中國大陸地區10kV架空電線距居民住宅需要滿足1.5米水平安全距離(裸導線)和6.5米垂直安全距離的國家強制標準。根據現行法規,10kV系統的電磁輻射水平極低,對居民健康影響可忽略不計,但購房…

河南萌新聯賽2025第(二)場:河南農業大學

我看到花兒在綻放 我聽到鳥兒在歌唱 我看到人們匆匆忙忙 我看到云朵在天上 我聽到小河在流淌 我看到人們漫步在路上 河南萌新聯賽2025第(二)場:河南農業大學 河南萌新聯賽2025第(二)場:河南農業大學_ACM/N…

unixbench系統性能測試

unixbench系統性能測試 環境: UnixBench: 6.0.0(2025-05-21)簡介 UnixBench 是一款經典的 Unix/Linux 系統性能測試工具,主要用于評估系統的CPU 運算能力、內存性能、多線程處理能力以及部分系統調用(如進程創建、文件操作)的效率…

上線了,自己開發的刷題小程序,vue3.0

嘿,最近我搞了個Java刷題的小程序,用Vue寫的,界面和功能都還挺完整的。今天就來跟大家聊聊這個小程序是怎么實現的,代碼里都藏著哪些小細節。 先看整體結構,我把整個頁面分成了幾個大塊:頂部導航欄、題目內…

嵌入式開發學習———Linux環境下數據結構學習(三)

單向循環鏈表單向循環鏈表是一種特殊的單向鏈表,尾節點的指針指向頭節點,形成一個閉環。適用于需要循環訪問的場景,如輪詢調度。結構特點:每個節點包含數據域和指向下一個節點的指針,尾節點的指針指向頭節點而非空值。…

【華為機試】684. 冗余連接

文章目錄684. 冗余連接描述示例 1示例 2提示解題思路核心分析問題轉化算法選擇策略1. 并查集 (Union-Find) - 推薦2. 深度優先搜索 (DFS)3. 拓撲排序算法實現詳解方法一:并查集 (Union-Find)方法二:深度優先搜索 (DFS)數學證明并查集算法正確性證明時間復…

Ⅹ—6.計算機二級綜合題7---10套

目錄 第7套 【填空題】 【修改題】 【設計題】 第8套 【填空題】 【修改題】 【設計題】 第9套 【填空題】 【修改題】 【設計題】 第10套 【填空題】 【修改題】 【設計題】 第7套 【填空題】 題目要求:給定程序中,函數fun的功能是:將形參s所指字符串中所…

【三橋君】大語言模型計算成本高,MoE如何有效降低成本?

? 你好,我是 ?三橋君? 📌本文介紹📌 >> 一、引言 在AI技術飛速發展的當下,大語言模型(LLM)的參數規模不斷增長,但隨之而來的計算成本問題也日益凸顯。如何在保持高效推理能力的同時擴…

Python游戲開發利器:Pygame從入門到實戰全解析

引言 Pygame是Python中最受歡迎的2D游戲開發庫之一,基于SDL(Simple DirectMedia Layer)構建,支持圖形渲染、音效處理、事件響應等核心功能。無論是開發簡單的休閑游戲,還是復雜的交互式應用,Pygame都能提供…

行為型模式-協作與交互機制

行為型模式聚焦于對象間的行為交互,通過規范對象協作方式提升系統的靈活性與可擴展性。在分布式系統中,由于多節點異步通信、網絡不可靠性及狀態一致性挑戰,行為型模式需針對分布式特性進行適應性設計。本文從觀察者、策略、命令、責任鏈、狀…

spring boot 整合 Spring Cloud、Kafka 和 MyBatis菜鳥教程

環境準備確保項目中已引入 Spring Boot、Spring Cloud、Kafka 和 MyBatis 的依賴。以下是一個典型的 Maven 依賴配置&#xff1a;<dependencies><!-- Spring Boot Starter --><dependency><groupId>org.springframework.boot</groupId><artif…

20 BTLO 藍隊靶場 Sticky Situation 解題記錄

難度&#xff1a;5/10考察技能: Windows admin, Autopsy 使用場景&#xff1a;分析USB設備使用情況Autopsy使用注意&#xff1a;用管理員打開&#xff0c;在實際分析時注意先復制一個鏡像文件&#xff0c;保存好原文件常用的Windows USB 取證的位置:Windows XP:Registry Key: U…

安裝及配置Go語言開發環境與VSCode集成指南

安裝Go語言開發 安裝Go語言開發環境是第一步。訪問Go官網&#xff0c;下載適合操作系統的安裝包&#xff0c;如果進不去可以訪問Go官方鏡像站。 根據自己的系統選擇對應的安裝包&#xff0c;我這邊是Windows系統就點擊安裝第一個即可。 點擊下一步即可。 驗證安裝是否成功可以…

專題:2025微短劇行業生態構建與跨界融合研究報告|附100+份報告PDF匯總下載

原文鏈接&#xff1a; https://tecdat.cn/?p43384 分析師&#xff1a;Boyu Wang 在此對 Boyu Wang 對本文所作的貢獻表示誠摯感謝&#xff0c;他在武漢大學完成了數據科學與大數據技術專業的學習。擅長 R 語言、Python、機器學習、數據可視化。 中國短視頻行業在經歷爆發式增…

配置NGINX

Nginx環境配置與前端VUE部署安裝nginx&#xff1a;命令sudo yum update && sudo yum install nginx部署:拷貝前端到目錄/home/publish/idasweb/下修改nginx配置&#xff1a;進入到/etc/nginx目錄下&#xff0c;修改nginx.conf中user www-data為user root&#xff0c;不…

MySQL深度理解-MySQL索引優化

1.Order by與Group by優化1.1Case1employees表中建立了name&#xff0c;position和age索引&#xff0c;并且使用了order by age進行排序操作&#xff1a;EXPLAIN SELECT * FROM employees WHERE name LiLei and position dev order by age最終explain的結果發現使用了idx_nam…

「Linux命令基礎」用戶和用戶組實訓

用戶與用戶組關系管理 在Linux系統中,用戶和用戶組的關系就像班級里的學生和小組。一個用戶可以同時屬于多個組,這種靈活的成員關系為權限管理提供了便利。創建用戶時,系統會自動生成一個與用戶同名的主組,這個組會成為用戶創建文件時的默認屬組。 理解用戶和用戶組的關系…

Https以及CA證書

目錄 1. 什么是 HTTPS 通信機制流程 證書驗證過程 CA證書 瀏覽器如何校驗證書合法性呢&#xff1f; 1. 什么是 HTTPS HTTP 加上加密處理和認證以及完整性保護后即是 HTTPS。 它是為了解決 HTTP 存在的安全性問題&#xff0c;而衍生的協議&#xff0c;那使用 HTTP 的缺點有…