python 高性能web框架 gunicorn+gevent

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

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

前言web

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

 

gunicorn 的運行方式:flask


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 或 meinheldapp

 

# gevent
gunicorn -k gevent code:application
# meinheld
gunicorn -k egg:meinheld#gunicorn_worker code:application框架

也能夠經過 -c 參數傳入一個配置文件實現

相關文章
相關標籤/搜索