一個django APP 的伺服器部署
相信很多後端開發者應該經歷過程式碼在本機上跑的好好的,但一部署到伺服器上就出差錯了,那其中到底發生了什麼?下面我就來扒一扒我在部署一個django應用過程中的心得體會。
程式碼
要執行一個app最重要的就是程式碼,我們需要先把程式碼放到伺服器上。把程式碼傳到部署伺服器上有很多辦法,目前主流的是在部署伺服器上使用git來拉取程式碼,這樣就能在伺服器上進行程式碼的版本控制。當然也可以用scp複製到伺服器上(不推薦)
依賴
一個app要滿足所有的依賴關係以後,才能夠正常執行,對於django應用至少django包是必不可少的。在python中可以透過 requirements.txt 來安裝這些依賴。一般來說要為每個應用建立一個單獨的虛擬環境,這樣可以防止一個伺服器上多個app之間依賴的互相影響。
環境
這裡的環境指的是app的執行配置,包括資料庫連結的地址,SECRET KEY這些配置,本地環境下的環境配置和線上的一般是不一樣的。在12-factor中推薦用環境變數來實現環境的相關配置,django可以使用django-environ來實現。到這一步為止,線上伺服器的這個app應該可以直接在3伺服器上執行了也就是自啟動應用。
服務
上面的應用是已經可以啟動了,但如果你連的資料庫是本地,那執行中肯定是會報錯的,這些app執行過程中所依賴的服務我把它稱為依賴服務,還有像logstash日誌收集服務,uwsgi伺服器服務,supervisor程式管理服務等,這些對於一個app的執行來說並非必要的服務我把它稱為附加服務。對於一個django應用,可以用uwsgi來替代django內建的伺服器,用nginx來做反向代理和對外的伺服器,用logstash來收集執行過程中的日誌,用supervisor來管理其它的程式。
綜述
其實對於一個線上的應用來說,可以這樣說 app=程式碼+依賴+環境, 而一個server=app+服務,這樣來看我們就可以把一個django應用的部署抽象出來,使用像saltstack的工具來部署大多數的django應用,最近在寫一個Django 應用的自動部署平臺,下次可以分享一下。
作者:steinliber
連結:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/1747/viewspace-2810049/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 一學就會的django專案伺服器部署nginx-uwsgi-django/buildDjango伺服器NginxUI
- 一個伺服器部署的問題伺服器
- Nginx + Gunicorn 伺服器配置部署 DjangoNginx伺服器Django
- 騰訊雲伺服器 Django專案部署 傻瓜式部署全流程 (一)伺服器Django
- 阿里雲伺服器部署django專案阿里伺服器Django
- Nginx+uWSGI+Django部署web伺服器NginxDjangoWeb伺服器
- 部署Django到阿里雲伺服器教程Django阿里伺服器
- django中多個app的路由實現DjangoAPP路由
- 伺服器(Aliyun)部署Django專案(Ubunto版)伺服器Django
- 為你的Django APP 寫一層 DAODjangoAPP
- 【django輕量級框架】django專案部署到阿里雲伺服器流程Django框架阿里伺服器
- 如何把本地的Django專案部署到伺服器(親測)Django伺服器
- NET Core Kestrel部署HTTPS 一個伺服器綁一個證書 一個伺服器綁多個證書HTTP伺服器
- 把django專案部署到阿里雲伺服器流程Django阿里伺服器
- Django部署HTTPSDjangoHTTP
- 你的第一個Django程式Django
- django_celery_beat的部署Django
- 學點簡單的Django之第一個Django程式Django
- 使用Docker容器化部署實踐之Django應用部署(一)DockerDjango
- Django上線部署Django
- Linux部署Django (Nginx + uwsgi + Python3 + Django)的過程LinuxDjangoNginxPython
- Django的Project和App的區別DjangoProjectAPP
- vue nginx 打包部署在同一個伺服器 一些配置VueNginx伺服器
- 論如何在伺服器上部署一個自己的web前端專案伺服器Web前端
- Django在centos上部署DjangoCentOS
- Winserver+Apache+django部署ServerApacheDjango
- 寶塔皮膚部署django的坑Django
- Django建立第一個專案Django
- 建立第一個django專案Django
- Python 建立一個Django專案PythonDjango
- 分享一個我的 Django 部落格專案Django
- StudyFlutter——我的第一個APPFlutterAPP
- Djang專案部署阿里雲伺服器(四)之執行Django專案阿里伺服器Django
- Django遠端部署--命令收集Django
- 5.Django專案部署Django
- Linux 下部署Django專案LinuxDjango
- django專案部署到centos,踩的坑DjangoCentOS
- Django搭建個人部落格:建立並配置APP功能模組DjangoAPP