Я хочу перенаправить с HTTP на HTTPS. Мой сервер Nginx находится за балансировщиком нагрузки, который отключит для меня SSL и отправит весь трафик (HTTP и HTTPS) на порт 80. Единственное доказательство, которое мне нужно будет указать, был ли исходный запрос HTTP или HTTPS, - через X-Forwarded-For
заголовок, устанавливаемый балансировщиком нагрузки. Есть ли встроенный недорогой способ обработки перенаправления в Nginx, когда исходный запрос был по HTTP? Имейте в виду, у меня будет сервер только для порта 80.
Предполагая, что вы гарантируете, что заголовок X-Forwarded-For установлен только для трафика SSL ...
if ($http_x_forwarded_for) {
return 301 https://$host$request_uri;
}
Хотя, возможно, это то, что вам следует сделать на балансировщике.