У меня есть 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, в случае, если это имеет какое-либо отношение к проблеме.