在UOS 上部署 django + uwsgi + nginx 流程


前言:這篇主要是流程,不喜勿噴,雖然我知道在部署過程中 參照博客寫的越詳細越好。 強大的百度會解決一切的

爬了諸多坑 ,心累

UOS 統一操作系統 前身 深度  arm 架構 (國產)

開始安裝(這里全部基於源碼安裝(手動安裝)的方式)

1、安裝nginx依賴包

  ssl 功能 需要安裝Openssl   網址:https://www.openssl.org/source/

  gzip庫需要 安裝zlib               網址:http://www.zlib.net/zlib-1.2.11.tar.xz

  rewrite模塊需要 pcre 庫      網址:https://ftp.pcre.org/pub/pcre/

  源碼安裝步驟:(這里不演示)

  1. tar -zxvf  ***.tar.gz

  2. cd ***

  3.  ./configure  

  4.make

  5.sudo make install

  小結:    1.      三個依賴包都是這樣安裝

      2.     3-5步容易出坑  耐心點 復制錯誤到百度 你會得到你想要的

2、 安裝nginx 

  奉上下載連接:https://nginx.org/download/nginx-1.16.1.tar.gz

  安裝方式: 參見上面 源碼安裝

       相信我 你會出錯 在第三小步 第四小步(如果沒有 你可能是天選之子)還是那句話 復制錯誤到百度 你會解決的

  配置環境變量: 

       這里希望記住 (既然你選擇linux)配置環境變量的文件 /etc/profile

        1. nginx 安裝之后的路徑 :/usr/local/nginx/sbin/ 

        2. sudo vim /etc/profile

        3. 在尾行添加  export  PATH=$PATH:/usr/local/nginx/sbin

        4. 配置完成 使用source  /etc/profile 

           5.  在終端 敲下 nginx  如果  未找到命令   (在確保沒寫錯 路徑的情況下,重啟試試)

  在終端輸入 nginx-t

      又有錯誤吧  不慌! 可能是權限原因 ,觀察報錯信息 找到文件 修改權限(sudo chmod 755  文件)如果不是 :百度!

3、安裝uwsgi

    python3.7 -m  pip install uwsgi      

4、相信django就不用我介紹了吧 

  關鍵的點:

        settings .py    

          ALLOWED_HOSTS = ['*',]

          DEBUG = False

          STATIC_ROOT='api/static' (這個路徑決定你  python3.7 manage.py collectstatic  生成的靜態文件夾路徑    什么?你不知道collectstatic是干什么的?請看下文)

        python3.7 manage.py collectstatic 

          你會得到一個文件夾 路徑是 settings中 STATIC_ROOT 的路徑,這個靜態資源 后續會在nginx中引用  可以理解為 獨立於django

至此  環境 都安裝完成 !!

配置uwsgi

   uwsgi --http :8888 --module eduonline.wsgi  執行它 看看 uwsgi是否正常

  真正的配置 manga.py 的同級創建 一個 uwsgi.ini 文件

  打開它   配置如下內容  千萬不要 把注釋寫到 代碼后面 否則 你會發現 錯誤是因為什么

[uwsgi]
 #  應用服務IP
socket=0.0.0.0:8000 
# 項目根目錄 chdir=/home/api wsgi-file=api/wsgi.py # 指定wsgi模塊,與nginx連接使用 module=api.wsgi # web服務IP端口 #http = 0.0.0.0:9000 # 開啟主進程管理模式 master=true # 進程數 processes=4 # 每個進程的線程個數 threads=2 pidfile=/home/api/api/uwsgi.pid # 日志文件一般會自動創建 daemonize=/home/api/api/uwsgi.log # 不記錄正常信息,只記錄錯誤信息 #disable-logging=true

  這么多參數 我怎么知道什么意思   請輸入 uwsgi -h  

  執行 uwsgi --ini uwsgi 啟動uwsgi 就用這個命令  因為什么都配置好了  囈? 什么沒有說呀  請看uwsgi.ini   daemonize找到這個文件 

配置nginx 

  1. cd /usr/local/nginx/conf/

  2. sudo vim nginx.conf

  3. 

server {
        listen       8080;
        server_name  www.baixin.com;   #  可以在hosts的文件里添加 DNS

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
        include uwsgi_params;
            uwsgi_pass 127.0.0.1:8000;  
        }
        location /static {
            alias /home/baixin/Desktop/vs_python/prue_projects/api/api/static;   #  python3.7 manage.py collectstatic 生成的static
        }

 

  4. 重啟 nginx -s reload

  5. 瀏覽器 開網頁

 

附:

  日志很重要:nginx 日志 : /usr/local/nginx/log/

        uwsgi日志:     uwsgi.ini 配置的 daemonize

        django的日志 :配置一個很重要

            奉上簡易版:

 # 日志配置
LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'handlers': {
        'file': {
            'level': 'DEBUG',
            'class': 'logging.FileHandler',
            'filename': './logs/api_debug.log',
        },
    },
    'loggers': {
        'django': {
            'handlers': ['file'],
            'level': 'DEBUG',
            'propagate': True,
        },
    },
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM