青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

C++分析研究  
C++
日歷
<2014年1月>
2930311234
567891011
12131415161718
19202122232425
2627282930311
2345678
統計
  • 隨筆 - 92
  • 文章 - 4
  • 評論 - 4
  • 引用 - 0

導航

常用鏈接

留言簿

隨筆檔案

文章檔案

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

 
  Python常見部署方法有 :

  fcgi :用spawn-fcgi或者框架自帶的工具對各個project分別生成監聽進程,然后和http 服務互動

  wsgi :利用http服務的mod_wsgi模塊來跑各個project(Web應用程序或框架簡單而通用的Web服務器 之間的接口)。

  uWSGI 是一款像php-cgi一樣監聽同一端口,進行統一管理和負載平衡的工具,uWSGI,既不用wsgi協議也不用fcgi協議,而是自創了一個uwsgi的協議,據說該協議大約是fcgi協議的10倍那么快。

  其實 WSGI 是分成 server 和 framework (即 application) 兩部分 (當然還有 middleware)。嚴格說 WSGI 只是一個協議, 規范 server 和 framework 之間連接的接口。

  WSGI server 把服務器功能以 WSGI 接口暴露出來。比如 mod_wsgi 是一種 server, 把 apache 的功能以 WSGI 接口的形式提供出來。

  WSGI framework 就是我們經常提到的 Django 這種框架。不過需要注意的是, 很少有單純的 WSGI framework , 基于 WSGI 的框架往往都自帶 WSGI server。比如 Django、CherryPy 都自帶 WSGI server 主要是測試用途, 發布時則使用生產環境的 WSGI server。而有些 WSGI 下的框架比如 pylons、bfg 等, 自己不實現 WSGI server。使用 paste 作為 WSGI server。

  Paste 是流行的 WSGI server, 帶有很多中間件。還有 flup 也是一個提供中間件的庫。

  搞清除 WSGI server 和 application, 中間件自然就清楚了。除了 session、cache 之類的應用, 前段時間看到一個 bfg 下的中間件專門用于給網站換膚的 (skin) 。中間件可以想到的用法還很多。

  這里再補充一下, 像 django 這樣的框架如何以 fastcgi 的方式跑在 apache 上的。這要用到 flup.fcgi 或者 fastcgi.py (eurasia 中也設計了一個 fastcgi.py 的實現) 這些工具, 它們就是把 fastcgi 協議轉換成 WSGI 接口 (把 fastcgi 變成一個 WSGI server) 供框架接入。整個架構是這樣的: django -> fcgi2wsgiserver -> mod_fcgi -> apache 。

  雖然我不是 WSGI 的粉絲, 但是不可否認 WSGI 對 python web 的意義重大。有意自己設計 web 框架, 又不想做 socket 層和 http 報文解析的同學, 可以從 WSGI 開始設計自己的框架。在 python 圈子里有個共識, 自己隨手搞個 web 框架跟喝口水一樣自然, 非常方便。或許每個 python 玩家都會經歷一個倒騰框架的托福改分

  uWSGI的主要特點如下:

  超快的性能。

  低內存占用(實測為apache2的mod_wsgi的一半左右)。

  多app管理。

  詳盡的日志功能(可以用來分析app性能和瓶頸)。

  高度可定制(內存大小限制,服務一定次數后重啟等)。

  uwsgi的官方文檔:

  http://projects.unbit.it/uwsgi/wiki/Doc

  nginx.conf

  location / {

  include uwsgi_params

  uwsgi_pass 127.0.0.1:9090

  }

  啟動app

  uwsgi -s :9090 -w myapp

  uwsgi的調優參數~

  uwsgi的參數

  以上是單個project的最簡單化部署,uwsgi還是有很多令人稱贊的功能的,例如:

  并發4個線程:

  uwsgi -s :9090 -w myapp -p 4

  主控制線程+4個線程:

  uwsgi -s :9090 -w myapp -M -p 4

  執行超過30秒的client直接放棄:

  uwsgi -s :9090 -w myapp -M -p 4 -t 30

  限制內存空間128M:

  uwsgi -s :9090 -w myapp -M -p 4 -t 30 --limit-as 128

  服務超過10000個req自動respawn:

  uwsgi -s :9090 -w myapp -M -p 4 -t 30 --limit-as 128 -R 10000

  后臺運行等:

  uwsgi -s :9090 -w myapp -M -p 4 -t 30 --limit-as 128 -R 10000 -d uwsgi.log

  為了讓多個站點共享一個uwsgi服務,必須把uwsgi運行成虛擬站點:去掉“-w myapp”加上”–vhost”:

  uwsgi -s :9090 -M -p 4 -t 30 --limit-as 128 -R 10000 -d uwsgi.log --vhost

  然后必須配置virtualenv,virtualenv是Python的一個很有用的虛擬環境工具,這樣安裝:

  最后配置nginx,注意每個站點必須單獨占用一個server,同一server不同location定向到不同的應用不知為何總是失敗,估計也算是一個bug。

  server {

  listen 80;

  server_name app1.mydomain.com;

  location / {

  include uwsgi_params;

  uwsgi_pass 127.0.0.1:9090;

  uwsgi_param UWSGI_PYHOME /var/www/myenv;

  uwsgi_param UWSGI_SCRIPT myapp1;

  uwsgi_param UWSGI_CHDIR /var/www/myappdir1;

  }

  }

  server {

  listen 80;

  server_name app2.mydomain.com;

  location / {

  include uwsgi_params;

  uwsgi_pass 127.0.0.1:9090;

  uwsgi_param UWSGI_PYHOME /var/www/myenv;

  uwsgi_param UWSGI_SCRIPT myapp2;

  uwsgi_param UWSGI_CHDIR /var/www/myappdir2;

  }

  }

  這樣,重啟nginx服務,兩個站點就可以共用一個uwsgi服務了。

  再來搞下 fastcgi的方式

  location / {

  fastcgi_param REQUEST_METHOD $request_method;

  fastcgi_param QUERY_STRING $query_string;

  fastcgi_param CONTENT_TYPE $content_type;

  fastcgi_param CONTENT_LENGTH $content_length;

  fastcgi_param GATEWAY_INTERFACE CGI/1.1;

  fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;

  fastcgi_param REMOTE_ADDR $remote_addr;

  fastcgi_param REMOTE_PORT $remote_port;

  fastcgi_param SERVER_ADDR $server_addr;

  fastcgi_param SERVER_PORT $server_port;

  fastcgi_param SERVER_NAME $server_name;

  fastcgi_param SERVER_PROTOCOL $server_protocol;

  fastcgi_param SCRIPT_FILENAME $fastcgi_script_name;

  fastcgi_param PATH_INFO $fastcgi_script_name;

  fastcgi_pass 127.0.0.1:9002;

  }

  location /static/ {

  root /path/to/www;

  if (-f $request_filename) {

  rewrite ^/static/(.*)$ /static/$1 break;

  }

  }

  啟動一個fastcgi的進程

  spawn-fcgi -d /path/to/www -f /path/to/www/index.py -a 127.0.0.1 -p 9002

  用web.py寫的一個小demo測試

  #!/usr/bin/env python

  # -*- coding: utf-8 -*-

  import web

  urls = ("/.*", "hello")

  app = web.application(urls, globals())

  class hello:

  def GET(self):

  return 'Hello, world!'

  if __name__ == "__main__":

  web.wsgi.runwsgi = lambda func, addr=None: web.wsgi.runfcgi(func, addr)

  app.run()

  啟動nginx

  nginx

posted on 2014-01-02 15:50 HAOSOLA 閱讀(551) 評論(0)  編輯 收藏 引用
 
Copyright © HAOSOLA Powered by: 博客園 模板提供:滬江博客
PK10開獎 PK10開獎
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            久久一二三国产| 亚洲国产欧美另类丝袜| 亚洲人在线视频| 欧美黑人多人双交| 一本久久知道综合久久| 99视频精品免费观看| 欧美网站在线观看| 亚洲欧美日韩综合国产aⅴ| 亚洲尤物影院| 亚洲大片在线观看| 亚洲啪啪91| 国产欧美日韩综合| 亚洲承认在线| 国产精品日韩电影| 牛人盗摄一区二区三区视频| 欧美高清在线视频观看不卡| 亚洲欧美在线看| 久久久亚洲人| 亚洲永久在线观看| 久久久久久一区二区三区| 日韩亚洲视频| 久久大逼视频| 国产精品99久久99久久久二8| 午夜视频在线观看一区二区三区| 在线观看亚洲精品视频| 99re这里只有精品6| 国产综合自拍| 日韩网站免费观看| 尤物精品国产第一福利三区| 一区二区三区国产盗摄| 激情亚洲一区二区三区四区| 99精品国产一区二区青青牛奶| 韩国成人福利片在线播放| 日韩亚洲一区二区| 亚洲二区免费| 欧美资源在线| 亚洲欧美日韩综合| 欧美久久久久久久久久| 欧美国产综合一区二区| 午夜在线成人av| 欧美精品亚洲一区二区在线播放| 久久久av水蜜桃| 欧美国产视频在线| 久久亚洲图片| 久久九九国产精品| 国产精品美女久久久免费| 亚洲欧洲另类国产综合| 狠狠综合久久av一区二区老牛| 一本一道久久综合狠狠老精东影业| 在线观看亚洲一区| 久久国产精品久久久久久久久久| 一区二区三区欧美成人| 欧美国产视频日韩| 亚洲激情视频网| 亚洲欧洲日产国产综合网| 久久精品天堂| 免费短视频成人日韩| 国内精品嫩模av私拍在线观看| 亚洲社区在线观看| 亚洲一区二区三区中文字幕| 欧美日韩国产欧美日美国产精品| 欧美激情精品久久久久久大尺度| 狠狠色伊人亚洲综合网站色| 欧美一区二区三区在线观看视频| 亚洲欧美国产不卡| 国产精品视频免费观看www| 99日韩精品| 销魂美女一区二区三区视频在线| 国产精品视区| 午夜精品久久久久久久99黑人| 小黄鸭视频精品导航| 国产精品中文字幕欧美| 午夜精品久久久| 久久亚洲视频| 亚洲高清在线| 欧美日韩国产999| 亚洲视屏在线播放| 久久国产精品久久久久久| 国产一区二区三区久久悠悠色av| 久久精品国产第一区二区三区| 鲁大师影院一区二区三区| 亚洲国产成人av在线| 欧美精品日韩三级| 亚洲视频你懂的| 久久久精彩视频| 亚洲精华国产欧美| 欧美四级在线观看| 欧美一区三区三区高中清蜜桃| 久久久久一本一区二区青青蜜月| 又紧又大又爽精品一区二区| 欧美1区视频| 国产精品99久久久久久白浆小说| 欧美一区影院| 亚洲欧洲日韩综合二区| 国产精品爱啪在线线免费观看| 欧美一区二区精品久久911| 免费不卡亚洲欧美| 亚洲影视九九影院在线观看| 激情久久五月天| 欧美日韩国产麻豆| 久久久久久噜噜噜久久久精品| 亚洲精品一区二| 久久一区二区三区四区五区| 99pao成人国产永久免费视频| 国产精品一区免费在线观看| 久久亚洲高清| 亚洲欧美激情在线视频| 亚洲国产精品一区二区第一页 | 亚洲综合三区| 最新中文字幕一区二区三区| 午夜一区二区三视频在线观看| 亚洲激情婷婷| 91久久亚洲| 永久域名在线精品| 国产精品久久久久久久久搜平片| 久久免费黄色| 亚洲免费视频在线观看| 亚洲黄色大片| 美女网站久久| 久久精品成人欧美大片古装| 国产精品99久久久久久久久久久久| 红桃视频一区| 国产区精品视频| 国产精品电影在线观看| 欧美激情精品久久久久久黑人| 欧美在线亚洲一区| 午夜亚洲福利| 亚洲一区二区免费视频| 日韩亚洲在线观看| 亚洲精品中文字幕在线观看| 欧美**字幕| 欧美 日韩 国产一区二区在线视频 | 日韩特黄影片| 亚洲精品韩国| 亚洲黄色三级| 亚洲国产欧美国产综合一区| 在线日本高清免费不卡| 在线观看亚洲精品视频| 精品av久久707| 极品裸体白嫩激情啪啪国产精品| 国产午夜精品美女视频明星a级 | 欧美激情精品久久久久久蜜臀 | 亚洲国内在线| 亚洲国产精品成人综合| 怡红院av一区二区三区| 在线观看日韩av| 亚洲第一在线视频| 最近中文字幕mv在线一区二区三区四区| 精品成人一区二区三区| 亚洲第一网站免费视频| 91久久精品美女| 一片黄亚洲嫩模| 亚洲男女自偷自拍| 欧美与欧洲交xxxx免费观看| 久久精品成人一区二区三区| 巨乳诱惑日韩免费av| 欧美国产日韩xxxxx| 亚洲国产精品美女| 中日韩高清电影网| 午夜在线观看欧美| 久久夜精品va视频免费观看| 蜜桃av噜噜一区| 欧美日韩大片| 国产欧美一区二区三区久久| 激情久久久久久久| 一本色道久久综合| 久久本道综合色狠狠五月| 久久久蜜臀国产一区二区| 欧美激情va永久在线播放| 夜夜嗨av一区二区三区网页| 亚洲欧美日韩国产成人精品影院| 久久超碰97中文字幕| 欧美顶级少妇做爰| 国产精品揄拍500视频| 91久久精品美女| 性欧美1819sex性高清| 欧美国产极速在线| 亚洲一级免费视频| 久久亚洲国产精品日日av夜夜| 欧美日韩国产综合一区二区| 国产亚洲一区在线播放| 欧美韩日视频| 亚洲二区视频在线| 亚洲私人影吧| 欧美黑人一区二区三区| 国精品一区二区| 在线视频欧美日韩精品| 久久影院午夜论| 亚洲一区中文| 欧美久久久久久久久久| 一区二区三区在线视频观看| 亚洲一区激情| 亚洲国产精品高清久久久| 欧美一区激情| 国产精品日本精品| 亚洲香蕉伊综合在人在线视看| 老司机午夜免费精品视频 | 久久国产精品久久w女人spa| 亚洲精品日韩精品| 免费观看亚洲视频大全|