1. 程式人生 > >python 高性能web框架 gunicorn+gevent

python 高性能web框架 gunicorn+gevent

之一 啟動 發布 egg nic 一個 運行 -- www.

參考鏈接: http://rfyiamcool.blog.51cto.com/1030776/1276364/

http://www.cnblogs.com/nanrou/p/7026789.html

前言

gunicorn 是支持wsgi協議的http服務器,gevent只是它支持的模式之一,是為了解決django、flask這些web框架自帶wsgi server性能低下的問題。自帶的web server更多的是測試用途,線上發布時,最好使用高性能的wsgi server 或者是聯合nginx做uwsgi

gunicorn 的運行方式:


gunicorn wsgi:application

其中wsgi就是wsgi.py文件, application就是那個wsgifunc的名字,默認端口是8000
如果要監聽別的端口

gunicorn -b 127.0.0.1:8090 wsgi:application
在多核服務器上,為了支持更多的並發訪問並充分利用資源,可以使用更多的gunicorn進程

gunicorn -w 8 wsgi:application
這樣,就可以啟動8個進程同時處理HTTP請求,提供系統的使用效率及性能
gunicorn wsgi:application
#8個worker
gunicorn -w 8 wsgi:application
#指定端口號
gunicorn -w 8 -b 0.0.0.0:8888 wsgi:application

#unix socket
gunicorn -w 8 --bind unix:/xx/mysock.sock wsgi:application
#使用gevent做異步(默認worker是同步的)
gunicorn -w 8 --bind 0.0.0.0:8000 -k ‘gevent‘ wsgi:application
#選項挺多,看文檔或者使用 --help都可以查看
--log-level=DEBUG
--timeout=100


BUT,gunicorn默認使用同步阻塞的網絡模型(-k sync),對於大並發的訪問可能表現不夠好,可以使用gevent 或 meinheld

# gevent
gunicorn -k gevent code:application

# meinheld
gunicorn -k egg:meinheld#gunicorn_worker code:application

也可以通過 -c 參數傳入一個配置文件實現


---------------------
作者:pNull
來源:CSDN
原文:https://blog.csdn.net/u011138533/article/details/76559251
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!

python 高性能web框架 gunicorn+gevent