AWS Балансировщик нагрузки приложения - правило не соответствует хосту правильно? - PullRequest
0 голосов
/ 09 января 2020

У меня есть Application Load Balancer, настроенный на прослушивание HTTP-запросов (только для проверки концепции, произойдет обновление до HTTPS для производства).

Я хочу разрешить подключение только с моего домена, назовите его test.example.com, блокируя все остальные. Итак, я установил два правила. Первый является значением по умолчанию и возвращает фиксированный ответ Not Authorized, если второе правило не совпадает. Второе правило проверяет заголовок Host, чтобы определить, равно ли оно test.example.com, и возвращает фиксированный ответ Welcome.

. При тестировании я могу успешно подключиться к ALB и получить значение по умолчанию Not Authorized сообщение, как при отправке запросов от anywehre, кроме моего домена. Тем не менее, я никогда не могу получить сообщение Welcome даже при отправке запросов от test.example.com.

Затем я установил лямбда-функцию в качестве цели для отправки назад объекта события, через который проходил ALB. К моему удивлению, заголовок Host всегда задается как DNS-имя самого ALB, а не как домен, который отправил запрос в ALB. Я проверил это на своем домене и с помощью CURL, и оба не влияют на заголовок Host.

При тестировании с моего домена я вижу, что он отправляет правильный заголовок запроса в ALB. Итак, я знаю, что АЛБ должен это видеть. Также установка ALB для соответствия *.example.com также не работает.

Это ожидаемое поведение? Может ли ALB быть настроен так, чтобы разрешать подключения только от test.example.com?

Обратите внимание, что test.example.com работает как Cloudflare Worker, в случае, если это имеет какое-либо отношение к проблеме.

...