1 Вопрос: Обратный прокси для nodejs с Nginx возвращает 502 при отправке куки

вопрос создан в Thu, May 2, 2019 12:00 AM

У меня есть приложение nodejs express, которое находится за обратным прокси-сервером nginx. Все работает как надо, за исключением того, что когда я пытаюсь установить куки в ответе, 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);
});

С этим кодом журнал nodejs не показывает никаких ошибок, и фактически показывает этот запрос как возвращающий 302, как и должно быть. Однако в браузере я получаю страницу 502 Nginx.

Когда я удаляю операторы res.cookie из приведенного выше кода, перенаправление работает нормально.

Конфигурация Nginx:

server {
    listen 443 ssl;

    server_name my.server.com;

    ssl_certificate /my/ssl/cert;
    ssl_certificate_key /my/ssl/key;

    location / {
        proxy_pass       http://localhost:3001;
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_set_header Host $http_host;
     }
}
    
0
1 ответ                              1                         

Оказалось, что мои куки были слишком большими для nginx, поэтому я просто увеличил ограничение размера заголовка, добавив:

proxy_buffers         8 16k;
proxy_buffer_size     16k;

в блок location /.

    
1
2019-05-02 16: 00: 46Z
источник размещен Вот