Обратный прокси для nodejs с Nginx возвращает 502 при отправке куки - PullRequest
0 голосов
/ 02 мая 2019

У меня есть приложение 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;
     }
}

1 Ответ

1 голос
/ 02 мая 2019

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

proxy_buffers         8 16k;
proxy_buffer_size     16k;

в блок location /.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...