#node.js #reactjs #docker #nginx #heroku
Вопрос:
у меня есть 3 приложения heroku
- интерфейс реагирует
- внутренний узел
- обратный прокси-сервер nginx
- вызовы обратного прокси-сервера/api/?(.*) не приветствуются серверной частью
- остальные все вызовы обратного прокси-сервера перенаправляются на интерфейс
код /etc/nginx/conf.d/default.conf
upstream frontend {
server $FRONTEND_URL;
}
upstream backend {
server $BACKEND_URL;
}
server {
listen $PORT;
location / {
proxy_pass http://frontend;
proxy_set_header Host $FRONTEND_URL;
}
location /api {
rewrite /api/(.*) /$1 break;
proxy_pass http://backend;
proxy_set_header Host $BACKEND_URL;
}
}
вопрос
я использую файл cookie для аутентификации, но файл cookie, установленный серверной частью, не «пересылается»
теперь это работает, изменения, которые я внес:
- изменение на
secure: false
в моем приложении узла сделало это за меня (возможно, позже добавит сертификат tls) - предложенное исправление @mariolu
теперь это выглядит так
location /api {
rewrite /api/(.*) /$1 break;
proxy_pass http://backend;
proxy_set_header Host $BACKEND_URL;
proxy_set_header Cookie $http_cookie;
}
app.set("trust proxy", true);
Ответ №1:
Вам нужно добавить
proxy_set_header Cookie $http_cookie;
в конфигурации местоположения.
Переменная $http_cookie-это файл cookie запроса пользователя.
Комментарии:
1. извините, я немного новичок… в локальной конфигурации? мой режим разработки работает (с помощью docker-compose up)