歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> nginx + uwsgi支持django框架

nginx + uwsgi支持django框架

日期:2017/2/27 16:00:54   编辑:Linux教程
最近學習了python框架,並且利用框架做了個後台管理系統,經過綜合的對比,最後決定讓管理後台運行在nginx+uwsgi構架上。
性能方面,uWSGI既不用wsgi協議也不用fcgi協議,而是自創了一個uwsgi的協議,據說該協議大約是fcgi協議的10倍那麼快(暫時無法論證)。想深入了解uwsgi的同學可以訪問官方wiki http://projects.unbit.it/uwsgi/wiki。
uwsgi的另一個強大之處在於可以支持很多種編程語言,包括python(最初支持的就是python)、lua、perl、ruby、Erlang、PHP、GO、JVM。並且可以同時支持多種框架。本文是以python的django框架為例,同時uwsgi還支持python的web.py、flask、web2py等框架。
以下開始部署安裝:

1、安裝並配置nginx
nginx安裝暫時不介紹,可自行搜索下裝法。新版nginx都已經默認支持uwsg。
這裡的nginx安裝目錄是在/usr/local/nginx
打開nginx.conf,並加入一個主機配置
server {
server_name www.linuxeye.com;

location / {
set $app mysite;
include uwsgi_params;
uwsgi_pass 127.0.0.1:3031;
}
}

2、安裝並配置uwsgi
下載uwsgi 
wget http://projects.unbit.it/downloads/uwsgi-latest.tar.gz
解壓安裝
tar zxvf uwsgi-latest.tar.gz
cd uwsgi-1.9
make
cd ..

編譯不出現錯誤的話,當前目前下會出現一個二進制uwsgi文件。為了方便管理,把uwsgi-1.9目錄拷貝到/usr/local/目錄
mv uwsgi-1.9 /usr/local/uwsgi
uwsgi可執行文件直接加參數即可運行,但為了方便管理,需要配置兩個文件.
cd /usr/local/uwsgi
mkdir -p conf
cd conf
cat >server.ini <<EOF
[uwsgi]
socket = 127.0.0.1:3031 #建立的socket端口
chdir = /home/server/linuxeye/    #django項目所在目錄
pythonpath = /usr/local/python2.7/ #python目錄
env = DJANGO_SETTING_MODULE=mysite.settings.py

processes = 4
threads = 2
wsgi-file = /usr/local/uwsgi/conf/serverlist.py #另一個配置文件的位置
EOF

cat > server.py<<EOF
#serverlist.py
import sys
import os
from django.core.handlers.wsgi import WSGIHandler
mysite_dir = '/home/server/linuxeye/'
#sys.path.append(os.path.abspath(os.path.dirname(__file__)))
sys.path.append(mysite_dir)
os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'
application = WSGIHandler()
EOF

3、啟動uwsgi並訪問網站
執行/usr/local/uwsgi/uwsgi /usr/local/uwsgi/conf/server.ini
打開www.linuxeye.com
Copyright © Linux教程網 All Rights Reserved