2015-08-31 4 views
0

Я очень новичок в программировании пользовательского интерфейса и в 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 не возвращаются.

Вот скриншоты мой отдых клиент Request Respnse

Что я здесь отсутствует. Нужно ли мне импортировать какой-либо модуль для чтения файлов cookie?

+1

На вашем скриншоте нет файлов cookie –

+0

'' 'AUTH_COOKIE = test'''. Предполагается, что это печенье. Или есть другой способ отправить cookie – sag

+1

Возможно, вы не можете установить произвольные заголовки из браузера. Попробуйте использовать консольные инструменты, такие как завиток. Проверьте эту команду 'curl -v -H 'Cookie: AUTH_COOKIE = test' http: // myhost: 3001' –

ответ

1

На скриншоте нет файлов cookie в заголовках запросов.

Возможно, вы не можете установить произвольные заголовки с помощью этого инструмента. Попробуйте использовать консольные инструменты, например curl или GET. Проверьте эту команду curl -v -H 'Cookie: AUTH_COOKIE=test' http://myhost:3001

Смежные вопросы