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

C++分析研究  
C++
日歷
<2025年12月>
30123456
78910111213
14151617181920
21222324252627
28293031123
45678910
統(tǒng)計(jì)
  • 隨筆 - 92
  • 文章 - 4
  • 評(píng)論 - 4
  • 引用 - 0

導(dǎo)航

常用鏈接

留言簿

隨筆檔案

文章檔案

搜索

  •  

最新評(píng)論

閱讀排行榜

評(píng)論排行榜

 
  Python常見部署方法有 :

  fcgi :用spawn-fcgi或者框架自帶的工具對(duì)各個(gè)project分別生成監(jiān)聽進(jìn)程,然后和http 服務(wù)互動(dòng)

  wsgi :利用http服務(wù)的mod_wsgi模塊來跑各個(gè)project(Web應(yīng)用程序或框架簡(jiǎn)單而通用的Web服務(wù)器 之間的接口)。

  uWSGI 是一款像php-cgi一樣監(jiān)聽同一端口,進(jìn)行統(tǒng)一管理和負(fù)載平衡的工具,uWSGI,既不用wsgi協(xié)議也不用fcgi協(xié)議,而是自創(chuàng)了一個(gè)uwsgi的協(xié)議,據(jù)說該協(xié)議大約是fcgi協(xié)議的10倍那么快。

  其實(shí) WSGI 是分成 server 和 framework (即 application) 兩部分 (當(dāng)然還有 middleware)。嚴(yán)格說 WSGI 只是一個(gè)協(xié)議, 規(guī)范 server 和 framework 之間連接的接口。

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

  WSGI framework 就是我們經(jīng)常提到的 Django 這種框架。不過需要注意的是, 很少有單純的 WSGI framework , 基于 WSGI 的框架往往都自帶 WSGI server。比如 Django、CherryPy 都自帶 WSGI server 主要是測(cè)試用途, 發(fā)布時(shí)則使用生產(chǎn)環(huán)境的 WSGI server。而有些 WSGI 下的框架比如 pylons、bfg 等, 自己不實(shí)現(xiàn) WSGI server。使用 paste 作為 WSGI server。

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

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

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

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

  uWSGI的主要特點(diǎn)如下:

  超快的性能。

  低內(nèi)存占用(實(shí)測(cè)為apache2的mod_wsgi的一半左右)。

  多app管理。

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

  高度可定制(內(nèi)存大小限制,服務(wù)一定次數(shù)后重啟等)。

  uwsgi的官方文檔:

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

  nginx.conf

  location / {

  include uwsgi_params

  uwsgi_pass 127.0.0.1:9090

  }

  啟動(dòng)app

  uwsgi -s :9090 -w myapp

  uwsgi的調(diào)優(yōu)參數(shù)~

  uwsgi的參數(shù)

  以上是單個(gè)project的最簡(jiǎn)單化部署,uwsgi還是有很多令人稱贊的功能的,例如:

  并發(fā)4個(gè)線程:

  uwsgi -s :9090 -w myapp -p 4

  主控制線程+4個(gè)線程:

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

  執(zhí)行超過30秒的client直接放棄:

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

  限制內(nèi)存空間128M:

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

  服務(wù)超過10000個(gè)req自動(dòng)respawn:

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

  后臺(tái)運(yùn)行等:

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

  為了讓多個(gè)站點(diǎn)共享一個(gè)uwsgi服務(wù),必須把uwsgi運(yùn)行成虛擬站點(diǎn):去掉“-w myapp”加上”–vhost”:

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

  然后必須配置virtualenv,virtualenv是Python的一個(gè)很有用的虛擬環(huán)境工具,這樣安裝:

  最后配置nginx,注意每個(gè)站點(diǎn)必須單獨(dú)占用一個(gè)server,同一server不同location定向到不同的應(yīng)用不知為何總是失敗,估計(jì)也算是一個(gè)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服務(wù),兩個(gè)站點(diǎn)就可以共用一個(gè)uwsgi服務(wù)了。

  再來搞下 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;

  }

  }

  啟動(dòng)一個(gè)fastcgi的進(jìn)程

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

  用web.py寫的一個(gè)小demo測(cè)試

  #!/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()

  啟動(dòng)nginx

  nginx

posted on 2014-01-02 15:50 HAOSOLA 閱讀(557) 評(píng)論(0)  編輯 收藏 引用

只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


 
Copyright © HAOSOLA Powered by: 博客園 模板提供:滬江博客
PK10開獎(jiǎng) PK10開獎(jiǎng)
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            久久久久**毛片大全| 亚洲国产高清自拍| 亚洲国产婷婷香蕉久久久久久| 欧美日韩蜜桃| 欧美成人在线免费观看| 国产亚洲精品高潮| 亚洲在线观看视频网站| 一片黄亚洲嫩模| 欧美成人一区二区三区片免费| 欧美中文在线视频| 国产精品热久久久久夜色精品三区| 亚洲区欧美区| 亚洲精品久久久久久久久| 久久精品一区二区三区不卡牛牛| 欧美中文字幕在线| 国产精品女主播在线观看| 999亚洲国产精| 一区二区高清在线观看| 欧美激情精品久久久| 欧美国产日韩二区| 亚洲人成7777| 欧美高清hd18日本| 亚洲日本成人| 中文日韩电影网站| 欧美性色综合| 一区二区三区久久网| 亚洲一二三区在线观看| 欧美日韩一区二区精品| 妖精成人www高清在线观看| 亚洲午夜av| 国产精品一区二区你懂得| 亚洲欧美日韩精品久久亚洲区 | 国产精品乱子久久久久| 一区二区欧美亚洲| 午夜精品免费| 黑人巨大精品欧美黑白配亚洲| 久久av在线看| 欧美韩日一区| 中国女人久久久| 国产精品美女| 久久精品免费看| 亚洲国产乱码最新视频| 宅男精品视频| 国产一区二区三区日韩| 久久人人爽人人| 亚洲精品视频在线| 欧美一区二区在线看| 精品福利电影| 欧美国产日韩一二三区| 夜夜嗨av一区二区三区中文字幕| 午夜精品免费在线| 国产在线视频不卡二| 欧美gay视频激情| 中日韩美女免费视频网址在线观看 | 麻豆成人在线播放| 亚洲精品视频中文字幕| 国产精品免费区二区三区观看| 欧美一区二区视频在线观看| 亚洲电影免费在线| 午夜视频在线观看一区| 亚洲国产免费看| 国产精品视频免费一区| 免费一区二区三区| 亚洲欧美日韩一区二区在线| 欧美成人dvd在线视频| 亚洲一区二区三区777| 亚洲成人资源网| 国产精品视频午夜| 欧美韩日亚洲| 久久成人国产精品| 亚洲视频久久| 亚洲欧洲精品一区二区三区波多野1战4| 亚洲影视九九影院在线观看| 亚洲国产精品成人久久综合一区| 国产精品福利影院| 欧美粗暴jizz性欧美20| 久久se精品一区二区| 制服诱惑一区二区| 亚洲第一在线综合在线| 久久免费视频在线| 亚洲欧美日韩在线一区| 亚洲乱码国产乱码精品精天堂 | 伊人久久成人| 国产精品伊人日日| 欧美日韩日本视频| 欧美成人一区二区三区片免费| 欧美在线观看视频一区二区三区| 亚洲少妇诱惑| 99视频精品全国免费| 亚洲福利视频三区| 欧美 亚欧 日韩视频在线| 久久爱www| 欧美一区二区高清| 亚洲一区国产| 亚洲制服av| 一区二区日本视频| 日韩一级欧洲| 日韩午夜在线视频| 亚洲精品影院| 99热精品在线| 中文av一区二区| 一区二区三区日韩在线观看| 日韩一二三在线视频播| 亚洲精品日韩一| 亚洲精品国产精品久久清纯直播 | 在线日韩日本国产亚洲| 国产一区二区三区日韩| 国产欧美在线观看| 国产欧美一二三区| 国产日韩精品一区二区| 国产日韩精品一区| 国产视频亚洲精品| 国内精品久久久久久久果冻传媒| 国产小视频国产精品| 国产午夜亚洲精品羞羞网站| 国产亚洲激情视频在线| 韩国亚洲精品| 亚洲第一福利在线观看| 欧美国产一区二区| 欧美人与性动交cc0o| 欧美人与禽猛交乱配视频| 欧美日韩一区在线视频| 国产精品高潮呻吟久久av无限| 国产精品久久久久91| 国产欧美精品日韩精品| 激情视频一区二区| 亚洲人成啪啪网站| 亚洲伊人一本大道中文字幕| 性感少妇一区| 男人插女人欧美| 亚洲精品欧美一区二区三区| 在线亚洲电影| 久久国产免费看| 欧美成人资源网| 国产精品久久一区二区三区| 国产一区二区三区自拍| 亚洲精品专区| 性感少妇一区| 欧美大成色www永久网站婷| 亚洲精品久久久久久久久久久久 | 国产一区二区三区免费不卡| 亚洲国产成人精品久久| 亚洲视频视频在线| 久久影视三级福利片| 亚洲国产美女久久久久| 亚洲午夜免费视频| 久久精品网址| 国产精品高精视频免费| 在线日韩精品视频| 亚洲欧美视频一区二区三区| 欧美国产亚洲精品久久久8v| 亚洲综合成人婷婷小说| 欧美电影打屁股sp| 国产视频一区在线观看| 日韩一级大片| 模特精品裸拍一区| 亚洲午夜高清视频| 免费国产自线拍一欧美视频| 国产欧美日韩另类一区| 夜夜狂射影院欧美极品| 久久久噜噜噜久久| 亚洲私拍自拍| 欧美黄色影院| 亚洲国产精品成人一区二区| 欧美综合第一页| 一本色道久久| 欧美精品国产| 亚洲国产精品毛片| 久久久久欧美| 亚洲在线成人| 国产精品高潮呻吟视频| 99国产精品私拍| 欧美肥婆在线| 久久偷看各类wc女厕嘘嘘偷窃| 国产日韩成人精品| 性做久久久久久久久| 日韩视频免费| 欧美精选午夜久久久乱码6080| 影音先锋中文字幕一区| 久久久亚洲精品一区二区三区| 在线视频中文亚洲| 国产精品99免费看| 亚洲一区日本| 在线亚洲国产精品网站| 欧美视频中文字幕在线| 一区二区三区欧美视频| 最近中文字幕mv在线一区二区三区四区| 久久久另类综合| 国内精品久久久久久久97牛牛| 欧美一区二区三区免费看| 亚洲无吗在线| 国产嫩草一区二区三区在线观看| 亚洲欧美日韩国产综合| 亚洲午夜精品一区二区三区他趣| 国产精品hd| 午夜天堂精品久久久久 | 一本一本久久a久久精品综合麻豆 一本一本久久a久久精品牛牛影视 | 欧美成人高清视频| 蜜臀91精品一区二区三区| 亚洲欧洲视频在线|