Пользовательские заголовки AWS ELB Nginx

Странное поведение ELB, когда удаляются пользовательские заголовки HTTP. В настоящее время я использую Nginx в качестве сервера со следующей конфигурацией виртуального хоста:

server {
    listen 80;
    server_name example.com;
    location / {
        index index.html index.htm;
        add_header Custom Test;
    }
}

При прямом доступе к серверу с использованием IP-адреса можно найти заголовок «Custom: Test». Но как только этот сервер находится за ELB. Пользовательский заголовок больше не отображается. Могу ли я узнать, связана ли эта проблема с моей настройкой?


person J.L    schedule 17.02.2015    source источник
comment
Мы столкнулись с той же проблемой. Не похоже, что есть какой-то способ обойти это.   -  person Chris Harrison    schedule 16.04.2015
comment
То же самое здесь, некоторые заголовки отбрасываются, кажется, это стандартное поведение...   -  person binaryanomaly    schedule 06.05.2015
comment
Мы тоже сталкиваемся с этой проблемой. Кто-нибудь нашел решение?   -  person fblundun    schedule 03.12.2015
comment
Я экспериментировал с различными пользовательскими заголовками. Мои наблюдения показывают, что заголовки, содержащие подчеркивание (например, api_key: xxx), удаляются ELB, а заголовки без подчеркивания (например, apikey: xxx или apiKey: xxx) — нет.   -  person fblundun    schedule 07.12.2015


Ответы (1)


Во время ответа мне удалось последовательно заставить ELB возвращать все заголовки ответа, которые я тестировал, включая те, у которых есть _, однако я все равно попытаюсь ответить на вопрос.

Из документации:

Когда вы используете HTTP (уровень 7) как для внешних, так и для внутренних подключений, ваш балансировщик нагрузки анализирует заголовки в запросе и разрывает соединение перед отправкой запроса на серверные экземпляры. [...]

Балансировщик нагрузки поддерживает не все расширения HTTP. Вам может понадобиться использовать прослушиватель TCP, если балансировщик нагрузки не может завершить запрос из-за неожиданных методов, кодов ответов или других нестандартных реализаций HTTP 1.0/1.1.

Это может быть причиной того, что ELB отбрасывает некоторые заголовки. Не существует окончательного списка того, что он делает или не удаляет, но он подразумевает что-либо, не относящееся к RFC (non-standard HTTP 1.0/1.1 implementations)

Если вам нужно, чтобы настраиваемый заголовок сохранялся там, где вы постоянно наблюдаете его сбой, вы можете вместо этого использовать TCP LB. Вы потеряете такие вещи, как X-Forwarded-For (но вы можете использовать протокол прокси для получения этой информации) и привязку сеанса.

В случае подчеркивания - это немного не рекомендуется (по крайней мере, с Nginx или другие веб-серверы) могут вести себя иначе.

person alexjs    schedule 01.01.2016