最近嘗試進行一些python web生產環境部署的任務。主要是使用django框架進行web開發。本地使用windows + python3.7可是上到伺服器之後是ubuntu系統。ubuntu預設是python2和python3.5兩者都不符合現在的python開發版本。筆者嘗試進行了部署。一般來說,部署乙個django web專案需要部署,資料庫,nginx, gunicorn和supervisor這幾個東西。其中資料庫不必說,nginx可以用來做反向**,靜態檔案伺服器等等(當然用django搭配whitenoise也可以),gunicorn作為python的http server,supervisor作為程序監控工具,一旦django專案崩潰無法執行,supervisor可以自動嘗試進行重啟專案。
隨著虛擬化容器的發展,直接使用docker進行部署是一種不錯的方案。編寫乙份dockerfile,指定需要的python版本甚至只是簡單指定需要的django版本即可。配合一些其他元件如mysql, nginx的容器進行編排,可以輕鬆地進行部署。[1]
除此之外使用docker還有一些優勢,有了docker的restart: always屬性,可以替代掉一些程序監控工具比如supervisor的作用。gunicorn這個庫在windows無法執行,使用docker也可以解決這個問題。搭配k8s也可以方便地進行集群部署管理。
pipenv 是一款包管理工具,集合了pip和virtualenv的功能。使用起來也非常簡單,pipenv install
,pipenv shell
兩條指令行天下,第一條是安裝第三方依賴,第二條是進入安裝依賴後的命令列。
在部署時,僅需要先使用pyenv指定python環境,再用pipenv建立虛擬環境進行包管理即可。
django生產環境部署
最近嘗試進行一些python web生產環境部署的任務。主要是使用django框架進行web開發。本地使用windows python3.7可是上到伺服器之後是ubuntu系統。ubuntu預設是python2和python3.5兩者都不符合現在的python開發版本。筆者嘗試進行了部署。一般來說,...
生產環境django專案部署要點
settings配置檔案設定 allowed hosts 或者填寫指定的ip 收集static靜態檔案目錄 python manage.py collectstatic 執行命令制定ip和埠 例如 python manage.py runserver 0.0.0.0 8000,不能用預設的127.0...
Django 環境部署
命令列輸入 python m venv 11 env windows系統 啟用虛擬環境 11 env scripts activate停止使用虛擬環境 deactivate安裝django pip install djangodjango中建立專案 django admin.py startproj...