Я использую AWS ALB, и моя установка выглядит следующим образом:
ALB] - HTTPS - [NGINX] - HTTP - [ALB] - HTTP - [APP / NGINX]
проблема в том, что я использую NGINX для перенаправления X-Forwarded-Proto = https в приложение через ALB, но ALB урезает его, приложению требуется X-Forwarded-Proto = https, чтобы оно могло выдавать безопасные файлы cookie и устанавливать Заголовок СТС. Мы пробовали установить этот заголовок в NGINX, но похоже, что APP ALB убирает его. и согласно поддержке AWS это сделано специально.
существует обходной путь для использования настраиваемого заголовка, чтобы сохранить значение X-Forwarded-Proto из первого ALB и отправить его во второй ALB, и это не будет отключено, когда оно достигнет приложения, может ли кто-нибудь посоветовать, как реализовать это на NGINX или предложить другой способ решения этой проблемы
Из этой ссылки на форуме они сказали, что Application Load Balancer передаст X-Forwarded-For / Proto / Port https://forums.aws.amazon.com/thread.jspa?messageID=738145.
Если в вашем случае заголовок X-Forwarded-Proto всегда получает значение HTTP. Тогда это означает, что AWS ALB не удаляет заголовок X-Forwarded-Proto, а заменяет его. Если верно, что AWS ALB заменяет X-Forwarded-Proto, вы можете использовать собственный HTTP-заголовок для передачи заголовка в первом экземпляре nginx. Как этот
Location /{
proxy_pass http://upstream;
proxy_set_header X-Custom-Forwarded-Proto $http_x_forwarded_proto;
}
Надеюсь, это поможет. Спасибо