2013-08-02 19 views
0

我一直在寫一個客戶端應用程序和一個服務器端應用程序作爲兩個獨立的應用程序,我希望客戶端使用服務器。客戶端是用javascript編寫的,服務器是用python編寫的,使用web.py作爲引擎傳遞給客戶端。客戶端和服務器必須位於同一個Web域中。在添加nginx作爲上游時的Web.py路由

服務器部分都有一個路由定義爲:

'/data/(.*)', 'applicationserver.routes.Data.Data' 

這正常運行它在本地使用http://buildserver/data/transform

我設置它作爲一個網站nginx的是這樣的:

upstream app { 
    server 127.0.0.1:8081 
} 

並將其添加到Web應用程序中,如下所示:

location /server { 
    ... 
    proxy_pass 
} 

該路線的新路徑將是` but for obvious reasons this will not work as the server app is listening for/data and not/server/data`。

我試圖在蟒蛇的路線更改爲(.*)/data/(.*)哪種類型不同的是它引發錯誤的作品:

<type 'exceptions.TypeError'> at /data/transform 
GET() takes exactly 2 arguments (3 given) 

回答

0

我想通了什麼事情剛剛發佈之前,但我希望我可以幫助別人否則通過張貼這個。

web.py正在將匹配的組發送到GET,因此使用(.*)/data/(.*)將路徑的開始和結束都發送到GET,這是它失敗的原因。

將路線設置爲.*/data/(.*)給了我以後的內容,並且只將數據發送到GET功能。