linux下nginx+python+uwsgi部署總結(django+web.py)

以前的文章已經提到了 django+fastcgi的運行並不如意(web.py+spawn-fcgi卻正常不少……),因此特地抽時間研究了一下uwsgi,試了一下,運行的很好,也很快,哈哈。
因此筆者的全部以前用apache+django搭建的項目(如fuload等)都已經替換成了nginx+django+uwsgi。python

一.安裝uwsginginx

  1. http://projects.unbit.it/uwsgi/wiki/WikiStart#Getit 下載最新版本的uwsg。
  2. 解壓後,若是沒有安裝libxml2,又不想安裝的話,那麼編輯文件 buildconf/default.ini, 把

    1
    xml_implementation = libxml2

    改爲web

    1
    xml_implementation = false
  3. 執行編譯

    1
    python uwsgiconfig.py --build
  4. 執行安裝

    1
    python setup.py install

這樣,uwsgi就安裝上了~apache

二.nginx配置
配置要比fastcgi還簡單一些:django

1
2
3
4
location / { 
    include uwsgi_params;     uwsgi_pass 127...1:9090; }

三.django配置
在mysite的統計目錄(即setting.py的上級目錄),建立文件uws_app.py:flask

1
2
3
4
5
6
7
8
9
import sys import os  sys.path.append(os.path.abspath(os.path.dirname(__file__))) os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings'  import django.core.handlers.wsgi  
application = django.core.handlers.wsgi.WSGIHandler()

啓動uwsgi:vim

1
uwsgi -s :9090 -w uws_app -p10 -d uws.error &

其實也能夠不用寫uws_app.py這個文件,直接啓動uwsgi:bash

1
uwsgi --module='django.core.handlers.wsgi:WSGIHandler()' --env DJANGO_SETTINGS_MODULE=mysite.settings -s :9090 -p 10 -d uws.log --touch-reload=uws.tc &

四.web.py配置
建立文件 index.py :app

1
2
3
4
5
6
7
8
9
10
11
12
13
#!/usr/bin/python # -*- coding: utf-8 -*-  import web 
 
urls = ("/.*", "hello")  class hello:
    def GET(self):
        return 'Hello, world!'  
app = web.application(urls, globals()) application = app.wsgifunc()

啓動uwsgi:post

1
uwsgi -s :9091 -w index -p 2 -d uws.error &

OK,到此爲止就整個配置完啦,簡單吧!

使用了uwsgi以後的fuload運行也很是穩定:

1


最後是uwsgi的一些文檔,你們能夠看一下.

uwsgi 啓動參數:
http://projects.unbit.it/uwsgi/wiki/Doc

uwsgi 配合django,web.py,flask等:
http://projects.unbit.it/uwsgi/wiki/Example

原創文章,版權全部。轉載請註明:轉載自Vimer的程序世界 [ http://www.vimer.cn ]

本文連接地址: http://www.vimer.cn/?p=2274

相關文章
相關標籤/搜索