Nginx, aynı server
blok içinde hem HTTP hem de HTTPS işlemesine izin verir . Böylece her ikisi için de direktifleri çoğaltmanız gerekmez ve güvence altına almak istediğiniz yolu yönlendirebilirsiniz
server {
listen 80 default_server;
listen 443 ssl;
... ssl certificate and other configs ...
location /user {
if ($scheme = 'http') {
rewrite ^ https://$http_host$request_uri? permanent;
}
}
... your basic configuration ...
}
Be emin değil koymak ssl on
sade HTTP kırarım çünkü orada çizgiyi.
İsteğe bağlı olarak, HTTPS'den diğer tüm istekleri de aynı şekilde HTTP'ye yönlendirebilirsiniz:
if ($scheme = 'https') {
rewrite ^ http://$http_host$request_uri? permanent;
}
GÜNCELLEME : Alexey Ten'in nazikçe yorumlar bölümünde işaret ettiği gibi, scheme
her isteği kontrol etmek çok parlak bir fikir değil. Nginx'inizi yapılandırmanın bildirimsel yolunu izlemelisiniz. Bu durumda, yönlendirmeleri olan iki sunucu bloğunu ilan edin location
, ortak mantığı ayrı bir dosyaya ve include
her ikisine de taşıyın . Yani GruffTech'in cevabı daha iyi.