nginx和fastcgi部署web.py問題總結

nginx和fastcgi部署web.py問題總結

部署方法,參見web.py的cookbook

1跳轉web.seeother沒有預期效果

以下面的代碼,預期效果是實現跳轉:html

class SomePage:
    def POST(self):
        # Do some application logic here, and then:
        raise web.seeother('/someotherpage')

但在這樣部署的環境下就沒有效果。 解決方法是,在啓動fastcgi的命令前,運行如下命令:nginx

export REAL_SCRIPT_NAME=""

2流傳輸文件,使用yield沒有預期效果

使用流傳輸文件,以下面的代碼,預期效果是一部分一部分的傳輸文件:web

class count_down:
    def GET(self,count):
        # These headers make it work in browsers
        web.header('Content-type','text/html')
        web.header('Transfer-Encoding','chunked')
        yield '<h2>Prepare for Launch!</h2>'
        j = '<li>Liftoff in %s...</li>'
        yield '<ul>'
        count = int(count)
        for i in range(count,0,-1):
            out = j % i
            time.sleep(1)
            yield out
        yield '</ul>'
        time.sleep(1)
        yield '<h1>Lift off</h1>'

但在這樣部署的環境下就沒有效果,文件仍是一次就傳完,而不是分步的。 解決方式,在nginx.conf中添加以下配置:app

http{
	......
	fastcgi_buffering off;
	......
}
相關文章
相關標籤/搜索