我有一个在 Nginx 后面运行的 Tornado 实例,当 GET 请求首先命中 Nginx 时,它会使用以下命令将请求定向到 Tornado 中的处理程序:
proxy_pass http://127.0.0.1:8080;
proxy_redirect off;
然后在 Tornado 的相应处理程序中:
class MyHandler(tornado.web.RequestHandler):
def get(self, collection, item):
tag = self.get_argument('tag')
self.set_secure_cookie('tag', tag, expires_days=None, httponly=True, secure=True)
self.set_header('X-Accel-Redirect', ''.join(('/blah/blah/', collection, '/', item, '/tag.html')))
self.finish()
这基本上将请求重定向回 Nginx 并要求它提供静态 html 页面。但是,如上所示,我想在重定向之前设置一个安全的cookie。这行得通吗?