Şu anda bir ELB hem hizmet veren pek http://www.example.org ve https://www.example.org .
Bunu kurmak istiyorum, böylece http://www.example.org adresine yapılan herhangi bir istek https://www.example.org adresine yönlendirilir .
ELB, https isteklerini http istekleri olarak gönderir, böylece:
server {
listen 80;
server_name www.example.org;
rewrite ^ https://$server_name$request_uri? permanent;
}
çalışmayacak çünkü https://www.example.org adresine yapılan istekler nginx'de 80 numaralı limana yapılacak.
Olarak yeniden yazmanın mümkün olduğunu biliyorum.
server {
listen 80;
server_name www.example.org;
if ($http_x_forwarded_proto != "https") {
rewrite ^(.*)$ https://$server_name$1 permanent;
}
}
Ancak okuduğum her şey if
nginx konfigürasyonundaki tüm masraflardan kaçınılması gerektiğini söyledi ve bu her bir istek için geçerli olacaktı. Ayrıca, sağlık kontrolü için özel bir ayrı konfigürasyon kurmam gerektiği anlamına gelir ( burada açıklandığı gibi : "… bir ELB'nin arkasındayken, ELB'nin HTTPS bitiş noktası olarak davrandığı ve yalnızca sunucunuza HTTP trafiği gönderdiği zaman, ELB'nin ihtiyaç duyduğu sağlık kontrolü için bir HTTP 200 OK cevabı ile cevap verme kabiliyetini kırmak ").
Giriş bilgisini nginx yapılandırması yerine web uygulamasının koduna koymayı düşünüyorum (ve bu sorunun amaçları için bunun Django tabanlı bir uygulama olduğunu varsayalım), ancak bunun genel giderlerden daha fazla olup olmayacağından emin değilim. if
yapılandırma.