Печенье после обратного прокси NGINX - PullRequest
0 голосов
/ 02 октября 2018

Приложение Rails 5.1.

Мой main_domain.com заблокирован блокировщиками рекламы, поэтому пользователи не могут использовать прямые ссылки на изображения с моего сайта.Я решил использовать new_domain.com + NGINX обратный прокси-сервер для перенаправления запросов с new_domain.com на main_domain.com , и это работает.Конфигурация NGINX:

server {
  server_name new_domain.com;

  location / {
      proxy_set_header X-Connecting-IP $remote_addr;
      proxy_pass https://main_domain.com;
  }
}

Но есть новая проблема: файлы cookie на main_domain.com после обратного прокси отсутствуют.

Странно, что после прокси в запросе и файлах cookie указан правильный домен:

pry(main)> request.domain
=> main_domain.com
pry(main)> cookies.request.domain
=> main_domain.com

, но необходимый ключ uniq_key пуст:

pry(main)> cookies[:uniq_key]
=> nil

, хотяон был создан ранее и отображается в консоли разработчика браузера, если я открываю main_domain.com .

Почему файлы cookie пусты и как я могу их прочитать?Заранее спасибо.

1 Ответ

0 голосов
/ 02 октября 2018

(1) Существует разница между перенаправлением и проксированием .Первый - когда сервер выдает специальный статус HTTP вместе с новым местоположением ресурса, а браузер делает новый запрос к новому местоположению.Так что браузер здесь делает два запроса.Последнее - когда ваш сервер перенаправляет запрос на другой сервер.А с точки зрения браузера это выглядит так, как будто исходный сервер возвращает ответ.

Итак, согласно фрагменту исходного кода, вы выполняете прокси .

(2) Cookies принадлежат доменам.Когда браузер отправляет запрос на new_domain.com , он не будет отправлять файлы cookie, установленные main_domain.com , поскольку браузер отправляет только один запрос на new_comain.com, потому что вы выполняет прокси , а не редирект .


Я думаю, что ответил на ваш вопрос "почему".Я не знаю, «как исправить», потому что с вашим подходом что-то серьезно не в порядке, и я понятия не имею, какие компромиссы возможны или какие изменения возможны.

...