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

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樱桃| 久久久av毛片精品| 亚洲午夜久久久| 亚洲人成在线观看| 亚洲日本欧美天堂| 亚洲激情第一区| 亚洲国产欧美一区二区三区久久 | 国产精品高潮视频| 亚洲国产精品欧美一二99| 亚洲欧美资源在线| 亚洲一区二区三区精品在线观看| 亚洲人精品午夜| 欧美黄色小视频| 欧美黄在线观看| 亚洲一区国产视频| 亚洲欧美一区二区精品久久久| 亚洲先锋成人| 性欧美暴力猛交69hd| 久久成人18免费观看| 久久成人免费视频| 久久人人爽人人| 欧美xx69| 国产乱码精品一区二区三区五月婷 | 亚洲日韩第九十九页| 久久久久国产免费免费| 欧美成人中文| 亚洲福利视频在线| 亚洲另类春色国产| 一区二区三区黄色| 欧美经典一区二区| 久久综合给合久久狠狠狠97色69| 欧美在线亚洲在线| 亚洲在线电影| 久久国产福利| 毛片精品免费在线观看| 欧美日韩国产探花| 国内精品嫩模av私拍在线观看 | 久久一区二区精品| 欧美精品激情在线观看| 国产亚洲欧美一区在线观看| 日韩亚洲欧美一区| 欧美福利视频| 久久本道综合色狠狠五月| 国产精品高潮久久| 一本色道久久综合亚洲精品小说| 久久综合一区二区三区| 亚洲欧美日韩精品久久久| 欧美日韩国产片| 亚洲精品一区二区网址 | 中国av一区| 欧美日韩国产综合视频在线观看中文| 狠狠综合久久| 久久国产综合精品| 欧美亚洲在线视频| 国产综合色在线| 久久精品国产亚洲a| 亚洲在线免费视频| 国产精品白丝av嫩草影院| 99riav国产精品| 亚洲国产精品黑人久久久| 久久精品国产免费看久久精品| 国产日韩精品一区| 欧美在线视频a| 欧美一区二区三区视频免费播放| 国产精品每日更新| 午夜视频久久久| 性欧美办公室18xxxxhd| 国产亚洲亚洲| 久久蜜臀精品av| 亚洲精品国产拍免费91在线| 欧美gay视频| 亚洲美女少妇无套啪啪呻吟| 亚洲福利国产精品| 欧美精品在欧美一区二区少妇| 亚洲精品一区二区三区福利| 亚洲黄色尤物视频| 国产精品成人免费| 久久精品主播| 久久综合影音| 在线一区视频| 亚洲欧美日韩成人高清在线一区| 国产视频亚洲精品| 欧美成年人视频网站| 欧美日韩一区二区三区在线视频| 亚洲综合日韩| 小嫩嫩精品导航| 亚洲欧洲日韩综合二区| 宅男噜噜噜66国产日韩在线观看| 国产日本欧美一区二区三区在线 | 久久综合给合久久狠狠色| 亚洲精品免费一二三区| 亚洲午夜av| 亚洲国产日韩欧美一区二区三区| 亚洲乱码久久| 国内成人精品视频| 日韩视频精品在线观看| 国产综合色产在线精品| 亚洲美女在线一区| 黄网动漫久久久| 亚洲精品资源| 国内外成人免费视频| 亚洲国产综合在线| 国产日韩精品在线| 亚洲美女视频| 在线精品视频在线观看高清| 99国内精品久久| 国产一区欧美日韩| 一本一本久久a久久精品综合麻豆| 国产综合久久久久久鬼色| 夜夜躁日日躁狠狠久久88av| 激情欧美一区二区| 中文av一区二区| 亚洲人成亚洲人成在线观看| 久久国产免费看| 欧美一级淫片aaaaaaa视频| 欧美激情一区二区三区不卡| 欧美一区观看| 欧美喷潮久久久xxxxx| 蜜臀av国产精品久久久久| 国产精品丝袜xxxxxxx| 亚洲人成人一区二区三区| 国内久久精品| 久久久国产精品亚洲一区| 欧美伊人久久| 国产欧美一区二区三区另类精品| 一本色道久久88亚洲综合88| 亚洲久久在线| 免播放器亚洲一区| 亚洲国产成人av| 亚洲电影免费观看高清| 国产精品精品视频| 欧美自拍丝袜亚洲| 国产精品乱码一区二三区小蝌蚪| 亚洲人成在线观看一区二区| 亚洲精品视频一区二区三区| 欧美成人精品福利| 亚洲高清一二三区| 亚洲精品在线观看免费| 欧美高潮视频| 亚洲三级电影全部在线观看高清| 亚洲区免费影片| 欧美高清自拍一区| 亚洲精品四区| 亚洲欧美色一区| 国产精品腿扒开做爽爽爽挤奶网站| 国产精品99久久久久久www| 亚洲在线播放电影| 国产美女在线精品免费观看| 欧美在线精品免播放器视频| 久久一日本道色综合久久| 激情久久久久久久久久久久久久久久| 欧美中在线观看| 欧美国产91| 中文无字幕一区二区三区| 国产精品久线观看视频| 性久久久久久久| 欧美aa国产视频| 亚洲视频精选| 国产一区免费视频| 欧美精品www| 亚洲性视频h| 欧美成va人片在线观看| 亚洲视频一二三| 国产一区二区三区网站| 欧美成人精品一区二区| 亚洲天堂免费观看| 欧美 日韩 国产在线| 在线综合视频| 伊人久久大香线蕉综合热线 | 裸体女人亚洲精品一区| 亚洲日本aⅴ片在线观看香蕉| 亚洲女人天堂成人av在线| 中文日韩电影网站| 亚洲一区成人| 国产一区二区三区免费不卡| 久久综合久久综合这里只有精品| 亚洲激情成人在线| 欧美一级播放| 亚洲日韩欧美视频一区| 国产精品豆花视频| 欧美www视频| 香蕉久久夜色精品| 亚洲激情在线播放| 久久久国产精品亚洲一区 | 欧美本精品男人aⅴ天堂| 亚洲视频第一页| 欧美国产精品va在线观看| 亚洲欧美一区二区三区久久| 亚洲人成7777| 伊人夜夜躁av伊人久久| 国产精品久久网站| 欧美日韩国产页| 免费成人美女女| 久久精品视频免费观看| 亚洲国产成人一区| 久久av二区| 亚洲午夜精品久久| 日韩午夜在线视频| 亚洲电影免费观看高清|