Путь к файлам cookie с помощью обратного прокси-сервера NGINX

#javascript #node.js #authentication #nginx #cookies

#javascript #node.js #аутентификация #nginx #файлы cookie

Вопрос:

У меня есть три разных приложения, работающих за обратным прокси-сервером NGINX.

Все они имеют графический интерфейс входа, который использует один и тот же API аутентификации. Аутентификация основана на файлах cookie.

Теперь моя проблема в том, что пути к файлам cookie устанавливаются по-разному в зависимости от того, какой графический интерфейс используется для входа в систему.

API аутентификации фактически устанавливает путь к cookie в / , но я предполагаю, что это прокси NGINX, который перезаписывает его в зависимости от местоположения.

Есть ли способ задать путь к файлам cookie в / , независимо от того, какой графический интерфейс используется?

Вот как выглядит моя конфигурация NGINX:

 http {
    server {
        listen       80;
        server_name  localhost;

        location = / {
            rewrite / /admin;
        }

        location /admin/ {
            proxy_pass  http://localhost:9001/;
        }

        location /app/ {
            proxy_pass http://localhost:3100/;
        }

        location / {
            proxy_pass  http://localhost:3000/;
        }
    }
}
  

Правка 1:
Я попытался добавить

 proxy_cookie_path ~*^/.* /;
  

как описано здесь, но это не помогло. Путь к файлу cookie по-прежнему остается /admin или /app

Ответ №1:

Директива proxy_cookie_path, безусловно, является решением описанной проблемы.

(Я только что узнал, что мой файл cookie был установлен не из серверного API, а на стороне клиента. Итак, проблема была не в конфигурации NGINX.)

Итак, для протокола:

 proxy_cookie_path ~*^/.* /;
  

должно сработать, если файл cookie установлен со стороны сервера.
Для получения дополнительной информации о директиве смотрите здесь.

Комментарии:

1. Смущен ответом. Вы указываете «наверняка есть решения для описанной проблемы». и в конце «должно сработать, если файл cookie установлен со стороны сервера». Но перед этим вы заявляете «мой файл cookie не был установлен со стороны сервера». Значит, решение не является ответом на вашу проблему? У меня та же проблема, и «proxy_cookie_path ~ * ^ /.* /;» не решает ее. Хотите уточнить?