【问题标题】:Web.py routing when added nginx as upstream将 nginx 添加为上游时的 Web.py 路由
【发布时间】:2013-08-03 08:55:15
【问题描述】:

我一直在编写客户端应用程序和服务器端应用程序作为两个独立的应用程序,我希望客户端使用服务器。客户端用javascript编写,服务器用python编写,使用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/dataand not/server/data`。

我试图将 python 中的路由更改为(.*)/data/(.*),除了它会引发错误之外,这种方法有效:

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

【问题讨论】:

    标签: python nginx proxy web.py


    【解决方案1】:

    我在发布之前就弄清楚了发生了什么,但我希望我可以通过发布这个来帮助其他人。

    web.py 正在将匹配的组发送到 GET,因此使用 (.*)/data/(.*) 将路径的开始和结束都发送到 GET,这就是它失败的原因。

    将路由设置为.*/data/(.*) 给了我我所追求的,并且只将数据之后的部分发送到 GET 函数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-09-08
      • 2019-12-11
      • 1970-01-01
      • 2020-09-11
      • 2019-02-19
      • 2017-07-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多