亚洲视频二区_亚洲欧洲日本天天堂在线观看_日韩一区二区在线观看_中文字幕不卡一区

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.430618.com 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

什么是Gunicorn?Gunicorn(綠色獨角獸)是一個用于UNIX的Python WSGI HTTP服務器。這是從Ruby的Unicorn項目移植來的一個前fork工作器模型。Gunicorn服務器廣泛兼容各種web框架,并具有實現簡單,輕量級,高性能等特點。它用來解析HTTP請求的網關服務。它通常是在進行反向代理(如Nginx),或者進行負載均衡(如 AWS ELB)和一個web 應用(比如 Django 或者 Flask)之間。它的運行模型基于pre-fork worker 模型,即就是支持eventlet,也支持greenlet。Gunicorn服務器作為wsgi App的容器,能夠與各種 Web 框架兼容(flask,django 等,得益于gevent 等技術,使用Gunicorn能夠在基本不改變wsgi app 代碼的前提下,大幅度提高 wsgi app的性能。目前Gunicorn最新版本為20.1.0,官方文檔地址:
https://docs.gunicorn.org/en/20.1.0/,如下圖:

高性能的Web服務器Gunicorn 20.1配置Superset 1.4

Gunicorn 20.1.0官方文檔

靜態資源可以使用nigix,動態資源使用Gunicorn,結構如下圖:

高性能的Web服務器Gunicorn 20.1配置Superset 1.4

nigix+Gunicorn結構

與uWSGI的性能比較,Gunicorn性能表現突出,如下圖:

高性能的Web服務器Gunicorn 20.1配置Superset 1.4

與uWSGI的性能比較

Gunicorn特點:

1.本身支持WSGI、web2py、Django和Paster,能和大多數的Python Web框架兼容

2.自動輔助進程管理

3.簡單的Python配置

4.允許配置多個工作環境

5.各種服務器的可擴展鉤子

6.兼容Python 3。 x > = 3.5

7.簡單易上手,輕量級的資源消耗

不過目前gunicorn只能運行在linux環境中,不支持windows平臺。

Python自帶的有個web服務器:wsgiref,Python是單進程的語言,當進程阻塞時,后續請求將排隊處理,因此在生產環境不會使用單進程的Web服務器。Gunicorn的優勢在于,它使用了pre-fork worker模式,也就意味著有一個中心管理進程(master process)用來管理worker進程集合。Master從不知道任何關于客戶端的信息。所有的請求和響應處理都是由worker進程來處理的。Master(管理者)主程序是一個簡單的循環,監聽各種信號以及相應的響應進程。master 管理著正在運行的 worker 集合,通過監聽各種信號比如TTIN,TTOU,and CHLD. TTIN and TTOU 響應的增加和減少worker的數目。CHLD信號表明一個子進程已經結束了,在這種情況下master會自動地重啟失敗的 worker。gunicorn在啟動時,會在主進程中預先fork出指定數量的worker進程來處理請求,gunicorn依靠操作系統來提供負載均衡,推進的worker數量是(2*核數)+1,比如2核的CPU,則worker數量為2*2+1=5

注:master進程不是管理處理請求的,只負責管理worker進程,比如對worker進程的創建、銷毀、以及根據負載情況增減。(啟動時設置的–workers參數只是worker數,而gunicorn還會創建個master進程。所以,即使配置workers為1,你的app也至少有兩個進程:master負責管理,worker負責處理請求)。

對于Gunicorn來說,gunicorn是WSGI的實現,但同時也自帶web server,能直接對外提供web服務。包括大部分的web app框架,比如Flask和Django也都帶有web server。但是,在生產環境中,一般它們都是各司其職的,Web框架Flask、Django只用于寫app、Gunicorn只用于運行和管理Python web app,而在它們有專門的web server,比如Nginx。

Gunicorn支持多種worker_class工作模式,默認使用sync,具體如下:

1.sync:同步的工作模式, 性能最差

2.eventlet: 協程的工作模式

3.gevent: 協程的工作模式

4.tornado:基于tornado

5.gthread: 多線程模式 利用線程池管理連接

6.gaiohttp:基于aiohttp

安裝Gunicorn,前提需要安裝好Python:

pip install gunicorn

執行:gunicorn -h,執行成功如下圖:

高性能的Web服務器Gunicorn 20.1配置Superset 1.4

gunicorn執行成功

查看gunicorn的版本如下:

pip show gunicorn
高性能的Web服務器Gunicorn 20.1配置Superset 1.4

查看gunicorn的版本

如果想讓Gunicorn支持異步workers的話,需要安裝一下三個python包:

pip install greenlet
pip install eventlet
pip install gevent

Apache Superset是一個開源的、現代的、輕量級BI分析工具,能夠對接多種數據源、擁有豐富的圖標展示形式、支持自定義儀表盤,且擁有友好的用戶界面,十分易用。具體可以參考我之前寫的幾篇關于Superset的文章:

1.《一個開源免費高顏值的輕量級商業智能BI平臺Superset 介紹》

2.《開源自助商業分析BI工具SuperSet 1.3.2快速入門(以CSV文件數據)》

3.《開源輕量級BI平臺Superset的SQL編輯器使用指南》

4.《解決開源輕量級BI平臺SuperSet連接SAP Hana數據庫的方案》

5.《開源輕量級BI平臺的Superset的數據集使用指南》

在開發或測試環境下,我們可以用Superset自帶的運行命令:

superset run -h 0.0.0.0 -p 8089

采用此種方式會有一個提示,此方式為非生產環境的部署,如下圖:

* Environment: production

WARNING: This is a development server. Do not use it in a production deployment.

Use a production WSGI server instead.

高性能的Web服務器Gunicorn 20.1配置Superset 1.4

Superset自帶運行方式

Superset官方建議生產環境默認用gunicorn,gunicorn運行superset如下:

gunicorn -w 5 -k gevent --timeout 120 -b  0.0.0.0:8089 --limit-request-line 0 --limit-request-field_size 0 "superset.app:create_app()"  --log-level info --access-logfile logfile.log --log-file error.log --daemon 
高性能的Web服務器Gunicorn 20.1配置Superset 1.4

gunicorn運行superset

--workers:指定進程個數

--timeout:worker進程超時時間,超時會自動重啟

--bind:綁定本機地址,即為Superset訪問地址

--limit_request_line:http request line最大字節數。值范圍0-8190, 0表示無限制


--limit_request_field_size:http request header字段最大字節數。0表示無限制

--worker_class:worker進程的工作方式。 有 sync, eventlet, gevent, tornado, gthread, 缺省值sync

--worker_connections:客戶端最大同時連接數。只適用于eventlet, gevent工作方式

--daemon:后臺運行,如果處于調試階段建議不加

--error-logfile:輸出日志

高性能的Web服務器Gunicorn 20.1配置Superset 1.4

運行superset成功


高性能的Web服務器Gunicorn 20.1配置Superset 1.4

登錄superset成功

gunicorn詳細配置可參考官網文檔:
https://docs.gunicorn.org/en/20.1.0/settings.html,這里就不一一介紹了。

分享到:
標簽:Gunicorn
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定