Nginx+uWSGI+Django部署web伺服器
阿新 • • 發佈:2018-11-19
一.搭建專案
1.建立一個虛擬環境
建議個人學習和測試的話,直接建在 /home/ubuntu/使用者/ 目錄下,
virtualenv -p python3 py3env
2.啟動虛擬環境
source py3env/bin/activate
3.安裝django,之所以裝這個版本是學習所需要,後面自己的專案最好與時俱進。
pip install django
4 .新建專案和app
django-admin startproject weixin #安裝專案 cd weixin python3 manage.py startapp newapp#安裝app python3 manage.py migrate #依賴
5.專案目錄結構
(py3env) [email protected]:~/ybb/weixin$ tree -L 2 . ├── manage.py ├── newapp │ ├── admin.py │ ├── apps.py │ ├── __init__.py │ ├── migrations │ ├── models.py │ ├── tests.py │ └── views.py └── weixin ├── __init__.py ├── __pycache__ ├── settings.py ├── urls.py └── wsgi.py
二.Django部署
1.修改weixin/weixin/settings.py
ALLOWED_HOSTS = ['*', ]
在ALLOWED_HOSTS 預設的空列表中填入你自己打算使用的域名,我這裡測試的時候填的是*
,真正上線部署的時候不建議填成萬用字元的*
,而是要填允許訪問的主機域名
INSTALLED_APPS = [
......,
'newapp', ]
INSTALLED_APPS 列表下增加newapp
,表示將newapp應用給安裝註冊上。
2.修改weixin/newapp/views.py
from django.shortcuts import render,HttpResponse # Create your views here. def index(request): return HttpResponse('Hello ybb')
3.編輯weixin/weixin/urls.py
from django.conf.urls import url
from django.contrib import admin
from newapp import views
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^index/', views.index),
]
4.測試專案,執行結果(注意伺服器埠開放有哪些)
python manage.py runserver 0.0.0.0:3389
三.uWSGI部署
1.同樣的虛擬環境下安裝:
pip3 install uwsgi
2.在專案目錄下,編寫一個用於簡單測試uwsgi的python指令碼,
vim test.py
3.test.py 程式碼
def application(env,start_response):
start_response('200 OK',[('Content-Type','text/html')])
return [b"Hello World"]
4.測試執行uWSGI
以下命令表示執行uwsgi服務,同樣是在3389口上開放web訪問。
* 注意--http
後是一個空格再接:
埠號。
uwsgi --http :3389 --wsgi-file test.py
ctrl+c中止程式,再來進行以下的測試。
5.使用uWSGI執行django專案
在虛擬環境下,進入到專案目錄下後敲以下命令:
uwsgi --http :3389 --module weixin.wsgi
效果和之前的
python manage.py runserver 0.0.0.0:3389
一樣
6.uWSGi熱載入Djangoa專案
在啟動命令後面加上引數:
uwsgi --http :3389 --module weixin.wsgi --py-autoreload=1
- 同樣,這個時候訪問伺服器3389埠,也就是訪問了django專案(weixin)。