部署vue+django的路飛學城

来源:https://www.cnblogs.com/zbj666/archive/2020/04/12/12687174.html
-Advertisement-
Play Games

部署vue+django的路飛學城 部署路飛學城架構圖 有一天,日天給我發來了兩個神秘代碼,聽說是和mjj的結晶 我將這兩個代碼,放到了一個網站上,大家可以自行下載 路飛學城django代碼 https://files.cnblogs.com/files/tiger666/luffy_boy.zip ...


 

部署vue+django的路飛學城

 

部署路飛學城架構圖

有一天,日天給我發來了兩個神秘代碼,聽說是和mjj的結晶

 

我將這兩個代碼,放到了一個網站上,大家可以自行下載

路飛學城django代碼
https://files.cnblogs.com/files/tiger666/luffy_boy.zip
vue代碼
https://files.cnblogs.com/files/tiger666/07-luffy_project_01.zip

一、將代碼搞到伺服器上

在linux上直接下載
https://files.cnblogs.com/files/tiger666/luffy_boy.zip
https://files.cnblogs.com/files/tiger666/07-luffy_project_01.zip
在window上下載,通過lrzsz,或者xftp傳輸到linux伺服器上

二、先從前端vue搞起

要在伺服器上,編譯打包vue項目,必須得有node環境

下載node二進位包,此包已經包含node,不需要再編譯
wget https://nodejs.org/download/release/v8.6.0/node-v8.6.0-linux-x64.tar.gz
解壓縮
tar -zxvf node-v8.6.0-linux-x64.tar.gz
進入node文件夾
[root@web02 opt]# cd node-v8.6.0-linux-x64/
[root@web02 node-v8.6.0-linux-x64]# ls
bin  CHANGELOG.md  etc  include  lib  LICENSE  README.md  share
[root@web02 node-v8.6.0-linux-x64]# ls bin
node  npm  npx
[root@web02 node-v8.6.0-linux-x64]# ./bin/node -v
v8.6.0
[root@web02 node-v8.6.0-linux-x64]# ./bin/npm -v
5.3.0

將node命令,添加至linux環境變數,修改/etc/profile,寫入

PATH=$PATH:/opt/node-v8.6.0-linux-x64/bin

讀取文件,生效PATH

source /etc/profile

測試path

[root@web02 node-v8.6.0-linux-x64]# node -v
v8.6.0
[root@web02 node-v8.6.0-linux-x64]# npm -v
5.3.0

node環境有了,安裝node模塊,以及打包node項目

進入vue源碼目錄
cd 07-luffy_project_01/
安裝vue模塊,預設去裝package.json的模塊內容,如果出現模塊安裝失敗,手動再裝
npm install 

此時註意,你本地寫的vue代碼,介面很可能連接的伺服器地址有問題,註意Axios.POST提交的地址,一定得發送給django應用(如果用了nginx,就發送給nginx的入口埠)
這裡為了試驗方便,將vue項目和django項目放在了一臺伺服器,通過nginx反向代理功能(8000埠),轉發vue請求給django(9000)

準備編譯打包vue項目,替換配置文件所有地址,改為伺服器地址
sed -i 's/127.0.0.1/192.168.119.12/g' /opt/07-luffy_project_01/src/restful/api.js
此時打包vue項目,生成一個dist靜態文件夾
npm run build
檢查dist文件夾 [root@web02 07-luffy_project_01]# ls dist/ index.html static

至此vue代碼就結束了,只需要讓nginx配置,找到vue的index.html首頁文件即可

nginx這裡不做解釋,編譯安裝好即可

server {
     #用戶訪問功能變數名稱或者ip,預設是nginx的80埠
listen 80; server_name 192.168.119.12;
     #url匹配 / 也就是請求地址是192.168.119.12時,進入此location,返回vue的dist下index.html路飛學城首頁 location / { root /opt/07-luffy_project_01/dist; index index.html; } }

三、配置後端代碼,解決虛擬環境,保證項目乾凈隔離

激活虛擬環境venv1,在虛擬環境下,安裝路飛項目所需的依賴模塊

[root@web02 opt]# cat requirements.txt
certifi==2018.11.29
chardet==3.0.4
crypto==1.4.1
Django==2.1.4
django-redis==4.10.0
django-rest-framework==0.1.0
djangorestframework==3.9.0
idna==2.8
Naked==0.1.31
pycrypto==2.6.1
pytz==2018.7
PyYAML==3.13
redis==3.0.1
requests==2.21.0
shellescape==3.4.1
urllib3==1.24.1
uWSGI==2.0.17.1

這個路飛代碼資料庫用的是sqllite,不需要配置資料庫了

購物車用都的是redis,因此要啟動伺服器的redis-server服務端

redis-server /etc/redis.conf

ps -ef|grep redis
redis-server *:6379

通過uwsgi啟動路飛項目

[uwsgi]
# Django-related settings
# the base directory (full path)
chdir           = /opt/luffy_boy
# Django's wsgi file
module          = luffy_boy.wsgi
# the virtualenv (full path)
home            = /opt/venv1
# process-related settings
# master
master          = true
# maximum number of worker processes
processes       = 1
# the socket (use the full path to be safe
socket          = 0.0.0.0:9000
# clear environment on exit
vacuum          = true
#後臺運行uwsgi
daemonize=yes
(venv1) [root@web02 opt]# uwsgi --ini luffy_boy/uwsgi.ini

四、配置nginx,此步重要

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  192.168.119.12;
        location / {
            root /opt/07-luffy_project_01/dist;
            index index.html;
            try_files $uri $uri/ /index.html;  # 為瞭解決刷新報404錯誤的問題,需要用到此行配置
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
           root   html;
        }
    }

    server {
        listen 8000;
        server_name 192.168.119.12;
        location / {
            uwsgi_pass 0.0.0.0:9000;
            include /opt/nginx/conf/uwsgi_params;
        }
        location /static {
            alias /opt/static;
        }
    }
}

 

原理圖

項目訪問 

測試賬號密碼

alex
alex3714

目前代碼功能演示,演示流程:

  1. 登錄alex賬號
  2. 選擇免費課程,django框架學習
  3. 添加課程到購物車,檢查alex賬號的購物車記錄,添加成功後再redis有數據

 

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • Linux系統安裝好之後會自動生成一些目錄,這些目錄都有各自的含義和用處,並且我們也應該遵循它們各自的作用來使用它,在登錄之後輸入命令“ls /”可以查看根目錄下有哪些一級目錄。 一些比較重要的目錄及其作用如下: /bin/:bin其實是Binary的縮寫,存放最經常使用的系統命令的目錄,普通用戶和 ...
  • Nginx 處理 HTTP 頭部的過程 Nginx 在處理 HTTP 請求之前,首先需要 Nginx 的框架先和客戶端建立好連接,然後接收用戶發來的 HTTP 的請求行,比如方法、URL 等,然後接收所有的 Header,根據這些 Header 信息,才能決定由哪些 HTTP 模塊處理請求。下麵這張 ...
  • 類似於從zone中的分配,如果無法從指定的遷移類型分配到頁,則會按照fallbacks指定的次序從備用遷移類型中嘗試分配,它定義在page_alloc.c中。 雖然該特性總是編譯進去的,但是該特性只有在系統中有足夠的記憶體可以分配到每種遷移類型對應的鏈表時才有意義,也就是說每個可以遷移性鏈表都要有“適 ...
  • 通常我們不會直接到Linux的機器上進行操作,而是通過遠程連接工具間接操作Linux系統,這類遠程連接工具現在也有很多,可以看個人習慣或需求選擇使用,因為我最近在用FinalShell,所以本文簡單講下怎麼使用這個工具。 官網:http://www.hostbuf.com/ 創建連接並登錄 安裝好F ...
  • 下載 "Ubuntu 官網下載" 簡介 Linux 是一種自由和開放源碼的類 UNIX 操作系統,使用 Linux 內核。通常情況下,Linux 被打包成供桌上型電腦和伺服器使用的 Linux 發行版本,Ubuntu 就是 Linux 的發行版本之一,目前比較流行知名的 Linux 發行版有:Ubu ...
  • redis基礎學習 redis Redis 是一個開源(BSD許可)的,記憶體中的數據結構存儲系統,它可以用作資料庫、緩存和消息中間件 yum安裝redis 1.yum安裝 #前提得配置好阿裡雲yum源,epel源 #查看是否有redis包 yum list redis#安裝redisyum inst ...
  • redis-sentinel主從複製高可用 主從複製架構 redis主從複製背景問題 Redis主從複製可將主節點數據同步給從節點,從節點此時有兩個作用: 一旦主節點宕機,從節點作為主節點的備份可以隨時頂上來。 擴展主節點的讀能力,分擔主節點讀壓力。 但是問題是: 一旦主節點宕機,從節點上位,那麼需 ...
  • centos下redis安全相關 博文背景: 由於發現眾多同學,在使用雲伺服器時,安裝的redis3.0+版本都關閉了protected-mode,因而都遭遇了挖礦病毒的攻擊,使得伺服器99%的占用率!! 因此我們在使用redis時候,最好更改預設埠,並且使用redis密碼登錄。 (1)redis ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...