Python 龙卷风中的相对重定向

Relative redirection in Python tornado

我有一个 tornado 网络应用程序,可以将用户重定向回主页(应用程序的“/”)。然后使用 nginx 作为应用程序之一部署 tornado 网络应用程序(例如 www.helloworld.com/app),重定向不再有效。下面的table应该描述情况。

+-----------------------------+---------------------------------+
| Root URL of tornado app     | www.helloworld.com/app          |
| Redirect URL                | www.helloworld.com/app/redirect |
| Expected URL after redirect | www.helloworld.com/app          |
| Actual URL after redirect   | www.helloworld.com              |
+-----------------------------+---------------------------------+

这是我的 RedirectHandler

class RedirectHandler(tornado.web.RequestHandler):
    def get(self):
        self.redirect(self.reverse_url("index"))

这是我的申请

handlers = [
            tornado.web.url(r'/', IndexPageHandler, name='index'),
            tornado.web.url(r'/redirect', RedirectHandler, name='redirect'),
        ]

Tornado 不适用于去除 URL 前缀的代理。使用完整的 URLs (tornado.web.url(r'/app', IndexPageHandler, name='index')) 配置你的 Tornado 服务器,并从你的 nginx proxy_pass 指令中删除路径。