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

相关文章
相关标签/搜索