我有一个位于nginx反向代理后面的nodejs express应用程序。一切正常,但当我尝试在响应上设置cookie时,nginx返回502页。
这是相关的路线代码:
let pictureURL = hhmessages[indexPath.row]["uploadpath"] as? String
使用此代码,nodejs日志不会显示任何错误,并且实际上显示此请求应返回了302。但是在浏览器中,我得到了Nginx的502页面。
当我从上面的代码中删除officeAuth.getToken(req.query.code).then((data) => {
const key = jwt.sign({access_token: data.access_token}, process.env.JWT_PRIVATE_KEY);
const refreshKey = jwt.sign({refresh_token: data.refresh_token}, process.env.JWT_PRIVATE_KEY);
res.cookie('token', key, {maxAge: data.expires_in * 24000, httpOnly: true});
res.cookie('refresh', refreshKey, {maxAge: data.expires_in * 24000, httpOnly: true});
res.redirect(process.env.APP_HOME_PAGE);
}, (err) => {
res.status(500).send(err);
});
语句时,重定向工作正常。
Nginx配置:
res.cookie
答案 0 :(得分:1)
原来我的cookie太大了,nginx无法处理,所以我通过添加以下内容来增加标题大小限制:
proxy_buffers 8 16k;
proxy_buffer_size 16k;
到location /
块。