前言:這篇主要是流程,不喜勿噴,雖然我知道在部署過程中 參照博客寫的越詳細越好。 強大的百度會解決一切的
爬了諸多坑 ,心累
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, }, }, }
