django + uwsgi 部署上線


django + uwsgi 部署上線

 

開發階段使用運行命令

1 # 事實上runserver 就是django 自帶的一個服務器 因為收發請求性能較差僅在開發階段使用,
項目部署我們一般使用uwsgi 服務器來處理動態請求
2 python manage.py runserver
 
        

啥是uwsgi?

一個輕量級的python服務器 遵從 wsgi 協議,簡單好用就是了

流程

  1. 安裝uwsgi

 
1 pip install uwsgi
2 # 無法成功下載試試更新pip 或者換國內源 

 

 
  1. 更改項目配置

1 #線上模式
2 3 # settings 中
4 5 DEBUG = FALSE
6 7 ALLOWSE_HOST=['*']
8

 

  1. 創建 uwsgi啟動文件

​方案一: ini 啟動
 1 ------------uwsgi.ini------------
 2 [uwsgi]
 3 # 使用nginx 時
 4 socket = 127.0.0.1:8000
 5 # 直接使用uwsgi
 6 http= 127.0.0.1:8000
 7 # 項目目錄 
 8 chdir=/home/python/Desktop/ai-web
 9 # 項目中uwsgi.py 位置相對於 項目目錄
10 wsgi_fire=ai-web/aiweb/wsgi,py
11 processes=4 # 進程數
12 threads=2 # 線程數
13 master =True # 有主進程
14 pidfire= uwsgi.pid    # 保存主進程的pid 在項目目錄下
15 daemonize =uwsgi.log # 設置后台運行 進程守護 信息寫入日志 在項目目錄下
16 virtualenv=/home/python/.virtualenvs/aiweb # 設置虛擬環境路徑
17 -----------------------
18 # 使用時注釋全部去掉不然無法運行  socket 或http 選一個就行了 

 

方案二

因為方案一啟動有時在ubuntu 下啟動了uwsgi但是沒有啟動項目網上找了很多解決方案也沒有所有給了方案二

創建 xml 啟動文件

-------uwsgi.xml-----------

<uwsgi>
    <http>172.16.51.218:21001</http>
    <chdir>/home/python/Desktop/astar-ai-web/astar_ai</chdir>
    <module>aiweb.wsgi</module>
    <processes>4</processes>
    <threads>2</threads>
    <master>true</master>
    <daemonize>uwsgi.log</daemonize>
    <pidfile>uwsgi.pid</pidfile>
</uwsgi>

 


 

  1. 啟動和停止

 1 啟動:
 2 uwsgi --ini 配置文件路徑 如:--ini uwsgi.ini
 3 uwsgi --ini uwsqi.ini # ini啟動(路徑注意)
  uwsgi -x uwsqi.xml  # xml 啟動
4 停止 5 uwsgi --stop uwsqi.pid #(路徑注意) 6 7 # 查看日志 8 tail -f uwsgi.log 9 10 # uwsgi.log 和 uwsqi.pid 都是uwsgi啟動后自動生成的有時候不知道原因沒有生成 uwsqi.pid 想要停止項目可以先找到進程再殺掉 11 12 # 檢查 進程 13 ps --aux |grep uwsgi

 

 

缺點與不足:

因為uwsgi 是輕量級的服務器 ,所以只處理動態請求,也就是說對於前后端不分離的開發模式,加載靜態文件會出問題, 這種使用靜態文件部署一般是再搭配Nginx


免責聲明!

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



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