zoukankan      html  css  js  c++  java
  • uwsgi使用

    使用了gevent一段时间之后,应用进程占用的内存稳步增长,一不小心就好几百M了,gevent应该存在一些内存泄漏,同时还有一些其他问题, 放到生产环境中很不适合。于是查找了一些其他的wsgi server,看了国外的一些评测,选定了uwsgi,安装之后,和gevent进行了一些测试比较,两者相差不多,在响应速度上似乎uwsgi要胜出一 点。

    下载源码之后,直接make,得到uwsgi,就可以直接用了。

    首先设置django应用的配置文件,django-uwsgi.py文件格式如下:

    import os
    os.environ['DJANGO_SETTINGS_MODULE'] = ‘yourapp.settings’

    import django.core.handlers.wsgi
    application = django.core.handlers.wsgi.WSGIHandler()

    uwsgi启动命令:

    /var/www/uwsgi –socket 127.0.0.1:8098 –pythonpath /var/www/yourapp -w django-uwsgi -p 10 -M -d /var/log/nginx/uwsgi-yourapp.log –uid www-data –l 10000

    nginx中的配置非常简单,nginx从0.8.40之后,默认支持了uwsgi协议。

    location / {
        uwsgi_pass 127.0.0.1:8098;
        include uwsgi_params;
    }

    uwsgi中的-p 10表示启动10个进程,-l 10000 表示处理了10000次请求之后,会自动重新启动该进程。

    uwsgi的重启也非常优雅,和nginx一样,发一个信号过去,uwsgi的主控制程序会等候应用进程处理完当前事务之后,再进行重启。uwsig的说明在http://projects.unbit.it/uwsgi/wiki/uWSGIReload

    重启命令:

    sudo killall -s HUP /var/www/uwsgi

    和nginx的信号一样

  • 相关阅读:
    网络协议 22
    网络协议 21
    网络协议 20
    网络协议 19
    网络协议 18
    网络协议 17
    网络协议 16
    网络协议 15
    网络协议 14
    .net 4.0 中的特性总结(五):并行编程
  • 原文地址:https://www.cnblogs.com/shihao/p/2509348.html
Copyright © 2011-2022 走看看