Я очень новичок в программировании пользовательского интерфейса и в nginx. Извините, если вопрос немой. Кроме того, я попытался почти все ответы, присутствующие в StackOverflow вопросы, подобные этим, но ничего не помогло мне решить эту проблемуКак читать cookie в nginx
Что мне нужно сделать:
Проверьте, правильно ли печенье под названием «AUTH_COOKIE» присутствует. Если его текущий proxy_pass на сайт1. Else proxy_pass site2. Для этого мне нужно прочитать куки.
Что я пробовал:
Я попытался прочитать куки как $ cookie_AUTH_COOKIE, но это не дает мне никакого результата. Я пробовал читать, используя $ http_cookie. Не использовать с этим также
Я пробовал следовать за настоящим настоящим здесь https://gist.github.com/rnorth/2031652 и https://gist.github.com/NickSto/6920790. Но бесполезно.
Теперь я просто попытался прочитать значение cookie и вернуть его с помощью echo. Ответ не содержит значения для моего файла cookie.
Вот Nginx конфигурации, что у меня было с помощью эхо
server {
listen 3001;
server_name <my_host>;
# Load configuration files for the default server block.
# include /etc/nginx/default.d/*.conf;
# set $auth_cookie "check";
if ($http_cookie ~* "AUTH_COOKIE=([a-z0-9]+)(?:;|$)") {
set $auth_cookie $1;
}
location/{
resolver 8.8.8.8;
echo "This is a test from $host with $auth_cookie. Cookie $cookie_AUTH_COOKIE. Referer $http_referer";
}
}
Когда я вызываю это через advanced rest client, я получаю ответ как
This is a test from localhost with . Cookie . Referer
Вы можете видеть, что $ auth_cookie, $ cookie_AUTH_COOKIE и $ http_referer не возвращаются.
Вот скриншоты мой отдых клиент
Что я здесь отсутствует. Нужно ли мне импортировать какой-либо модуль для чтения файлов cookie?
На вашем скриншоте нет файлов cookie –
'' 'AUTH_COOKIE = test'''. Предполагается, что это печенье. Или есть другой способ отправить cookie – sag
Возможно, вы не можете установить произвольные заголовки из браузера. Попробуйте использовать консольные инструменты, такие как завиток. Проверьте эту команду 'curl -v -H 'Cookie: AUTH_COOKIE = test' http: // myhost: 3001' –