flask+gevent+gunicorn+nginx 初試
1.安裝flask
pip install flask
2.安裝gevent
pip install gevent
3.安裝gunicorn
pip install gunicorn
版本號資訊如下:
[[email protected] ~]# pip list
Flask (0.10.1)
gevent (1.0.1)
greenlet (0.4.2)
gunicorn (18.0)
pip (1.5.5)
setuptools (3.6)
4.安裝nginx
下載原始碼包安裝,版本資訊如下
[[email protected] sbin]# ./nginx -v
nginx version: nginx/1.7.0
5.nginx配置反向代理
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
try_files @uri @pp;
}
location @pp {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_pass http://127.0.0.1:5000;
}
所有請求轉發到gunicorn監聽的5000上。
6.gunicorn配置
[[email protected] pythonTest]# cat gun.conf
import os
bind='127.0.0.1:5000'
workers=4
backlog=2048
worker_class="gevent" #sync, gevent,meinheld
debug=True
proc_name='gunicorn.pid'
pidfile='/var/log/gunicorn/debug.log'
loglevel='debug'
[[email protected] pythonTest]#
7.測試指令碼編寫
[[email protected] pythonTest]# cat run_test.py
from flask import Flask
from flask import render_template_string
import os
from werkzeug.contrib.fixers import ProxyFix
app = Flask(__name__)
@app.route("/")
def index():
return "Hello World"
app.wsgi_app = ProxyFix(app.wsgi_app)
if __name__ == "__main__":
app.run()
8.啟動指令碼
[[email protected] pythonTest]# gunicorn -c gun.conf run_test:app
看到如下部分輸入2014-05-12 10:29:41 [30260] [INFO] Listening at: http://127.0.0.1:5000 (30260)
2014-05-12 10:29:41 [30260] [INFO] Using worker: gevent
2014-05-12 10:29:41 [30265] [INFO] Booting worker with pid: 30265
2014-05-12 10:29:41 [30266] [INFO] Booting worker with pid: 30266
2014-05-12 10:29:41 [30267] [INFO] Booting worker with pid: 30267
2014-05-12 10:29:41 [30268] [INFO] Booting worker with pid: 30268
監聽本機的5000埠,
工作模式為gevent,
開啟4個程序
9.壓力測試
在另一臺虛擬上進行用ab模擬併發請求
報錯:apr_socket_recv: No route to host (113)
[[email protected] ~]# time ab -n 200 -c 200 http://172.16.3.92/
This is ApacheBench, Version 2.3 <$Revision: 1554214 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
Benchmarking 172.16.3.92 (be patient)
apr_socket_recv: No route to host (113)
real0m0.078s
user0m0.021s
sys0m0.046s
解決方法:關閉目標伺服器的防火牆
[[email protected] pythonTest]# service iptables stop
Flushing firewall rules: [ OK ]
Setting chains to policy ACCEPT: filter [ OK ]
Unloading iptables modules: [ OK ]
ok, 這下可以壓力測試了
[[email protected] ~]# time ab -n 2000 -c 200 http://172.16.3.92/
This is ApacheBench, Version 2.3 <$Revision: 1554214 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
Benchmarking 172.16.3.92 (be patient)
Completed 200 requests
Completed 400 requests
Completed 600 requests
Completed 800 requests
Completed 1000 requests
Completed 1200 requests
Completed 1400 requests
Completed 1600 requests
Completed 1800 requests
Completed 2000 requests
Finished 2000 requests
Server Software: nginx/1.7.0
Server Hostname: 172.16.3.92
Server Port: 80
Document Path: /
Document Length: 11 bytes
Concurrency Level: 200
Time taken for tests: 16.273 seconds
Complete requests: 2000
Failed requests: 0
Total transferred: 334000 bytes
HTML transferred: 22000 bytes
Requests per second: 122.90 [#/sec] (mean)
Time per request: 1627.313 [ms] (mean)
Time per request: 8.137 [ms] (mean, across all concurrent requests)
Transfer rate: 20.04 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 40 486.7 1 8992
Processing: 276 1032 250.5 1028 6300
Waiting: 273 1032 250.5 1027 6300
Total: 283 1072 618.1 1029 15292
Percentage of the requests served within a certain time (ms)
50% 1029
66% 1055
75% 1074
80% 1096
90% 1210
95% 1245
98% 1361
99% 2416
100% 15292 (longest request)
real0m16.316s
user0m0.598s
sys0m1.447s
相關推薦
flask+gevent+gunicorn+nginx 初試
1.安裝flask pip install flask 2.安裝gevent pip install gevent 3.安裝gunicorn pip install gunicorn 版本號資訊如下: [[email protected] ~]# pip li
flask專案Gunicorn + Nginx 進行佈署阿里雲靜態檔案出不來解決方案
使用 Gunicorn + Nginx 進行佈署,雲伺服器為阿里雲 上線後除了主頁能顯示出來,什麼都是返回404,。 解決方案: vi /etc/nginx/sites-available/default 新增以下程式碼: location /static { &n
Flask+Gunicorn+Gevent+Supervisor+Nginx生產環境部署
flask、gunicorn、gevent、supervisor、nginx 老毛病了,在用某個新框架或新架構之前,總得花時間谷歌和自己折騰一番,才能知道這個框架和架構的優缺點,才會發現自己最喜歡、用的最順手的的一種。近期在學習python,這裏記錄一下自己用的一套python web開發的部署環境。簡介
gunicorn +nginx+python3 部署flask專案(gevent+gevent)--依賴的包
gunicorn +nginx+python3 部署(gevent+gevent)--依賴的包 bind = [&quo
用docker部署flask+gunicorn+nginx
rest unicorn cto status ade 時間 class 不同的 自己 說來慚愧,寫了好幾個flask django項目都是在原型階段直接python app.py 運行的,涉及到部署用nginx和gunicorn 都是讓別人幫我部署的,據說好像說很麻煩的樣
CentOS7部署Flask+Gunicorn+Nginx+Supervisor
Flask MongoDB Gunicorn Nginx Supervisor 1. Git客戶端 Win10安裝git for windows 1.1 設置Git全局參數 打開Git Bash $ git config --global user.name "Alice-HomePC"
flask部署到阿里雲伺服器centos+python3+gunicorn+nginx詳細教程(從本地windows可執行部署伺服器環境上可執行)
前言: 做了flask網站,是因為軟體工程課程的任務,每個小組期末需要交一份的可執行的專案,我們小組做的是flask留言牆,用的flask做後臺邏輯功能,前端h5,javascript,jquery,實現網頁佈局,樣式,前端驗證...做完,想把這個網站掛到外網上,就需要伺服器...這裡用了阿
Gunicorn + Nginx部署FLask專案
一,系統環境 ubuntu 16.04系統,雲伺服器為阿里雲 二, Gunicorn Gunicorn(綠色獨角獸)是一個Python WSGI的HTTP伺服器 從Ruby的獨角獸(Unicorn )專案移植 該Gunicorn伺服器與各種Web框架相容,實現非常簡單,輕量級的資
Django + Gunicorn + Nginx 部署 Ubuntu 服務器
default sql 配置文件 str 原來 ack 建數據庫 ubunt make 自定義 Django + Gunicorn + Nginx 部署服務器 獲取騰訊雲 root權限 本人的服務器使用的是騰訊雲,騰訊雲默認是沒有開放 root 用戶的,我們來創建 root
centos7.4 部署flask專案之 Nginx
centos7.4 部署flask專案之 Nginx 遠端部署flask專案nginx的基操 nginx的基本常用使用命令 小白你過來一下 遠端部署flask專案nginx的基操 因為nginx公司有內部專用版本,
基於ubuntu 16.04系統,使用 Gunicorn + Nginx 進行佈署,雲伺服器為阿里雲 學習目標
阿里雲伺服器 進入控制檯,檢視例項建立情況 給安全組配置規則,新增5000埠(一併加上5001埠) 利用命令列進行遠端伺服器登入 ssh 使用者名稱@ip地址 相關環境安裝 以下操作都在遠端伺服器上進行操作 (ubuntu 16.04) 先更新 ap
django + gunicorn+ nginx部署
部署環境: python3.6 + 騰訊雲伺服器 開始用uwsgi部署,不太通用,坑賊多,阻礙了很長時間。最後還是選擇了gunicorn。 安裝django,編寫程式碼,除錯執行通過。 ip:port訪問成功 安裝gunicorn & 配置gunic
使用flask開發RESTful架構的api伺服器端(5)–部署flask應用到nginx
nginx:一個高效能的http和反向代理伺服器,在高併發方面有良好的表現; wsgi:全稱是web server gateway interface,它是伺服器程式和應用程式之間的一個約定,它規定了兩者各實現什麼功能,以便它們能夠配合使用,作為中介軟體粘合伺服器程式和應用程式; gunicorn:一個開源
用tornado將flask部署到Nginx上
【flask_app.py】 from flask import Flask app = Flask(__name__) @app.route('/') def hello_world():
阿里雲伺服器部署 之 部署flask生成的hello_world (ubuntu16.04 + flask + python3 + gunicorn)
首先要搭建環境,你要有一個阿里雲伺服器,並且在本地已經有了hello_world 程式,下面要做的就是在阿里雲伺服器上重新搭建一遍本地的環境。 先簡單的說一下阿里雲伺服器,我自己買的是雲伺服器ESC,需要配置一下安全組規則,就是埠,按下圖配置即可,最重要的是22和80埠。 然後就是我們
使用flask開發RESTful架構的api伺服器端–部署flask應用到nginx
原文地址:http://www.mrhaoting.com/?p=199 通過前幾章的介紹,大概瞭解了怎樣利用flask框架來開發服務端後端,但flask只是一個web框架,提供使用者便捷的開發方式,它並不是一個真正的web伺服器程式,想要這個服務端應用能夠支援高併發、
Nginx學習之十四-GDB除錯Nginx初試
本文的測試環境: Win7+虛擬機器VMWareVMware-workstation-full-7.1.4-385536+Ubuntu12.04 Nginx-1.4.0 要想有效的研究Nginx原始碼,必須要動手除錯,GDB就是有用的利器。下面簡要介紹用GDB除錯Ngi
Django + Gunicorn + Nginx 部署之路
前言 最近,我已經成功將我的個人網站從 Flask 遷移到 Django 了,最早接觸 Django 的時候大概是在 4 年前,我記得那個時候 Django 中的路由配置使用 正則 來進行的,但是我有特別煩這個東西,所以就果斷棄坑了。然後今年年初的時候,我用 Flask 寫了一個我的個人網站,剛開始的時候
docker實戰docker+python3.5+flask+gunicorn+gevent+nginx base image:centos
docker部署flask應用程式 簡單的在本地測試使用docker,為了方便記憶特此記錄,本文構建的映象沒有通過dockerfile來獲取映象,本文的操作都是使用sudo進行操作,普通使用者在centos系統好像不起作用,具體原因未查明。測試環境: 作
nginx+django+gunicorn+gevent+supervisor
nginx django gunicorn gevent安裝環境介紹: python2.7.10 django1.7.9 linux CentOS release 6.5 (Final) 64 假設我的項目位置為/var/www/myweb 服務器IP為192.168.0.100