簡體   English   中英

Jelastic Nginx http到https重定向

[英]Jelastic Nginx http to https redirect

我在Jelastic中有一個帳戶,我想強制我的網站只能通過https進行工作。 我創建環境的nginx + PHP nginx的平衡器和啟用SSL Jelastic(因為它描述這里 )。

每當我嘗試設置301從http重定向到https都沒有運氣時。 使用mod_rewrite對我不起作用,我唯一得到的就是循環重定向。 Google沒有幫助。

我真的需要勸告。 將提供任何其他信息。

提前致謝。

如果您使用的是Jelastic SSL,則意味着您在共享的Jelastic解析器上有SSL卸載=對服務器的所有請求都是http(不是http / https)。

您需要檢查X-Forwarded-Proto標頭,以識別最初是https的請求。

確實,當您啟用Jelastic SSL(意味着您不能使用公共IP)共享解析器時,它將處理對服務器的所有請求,但在解析器和服務器之間的請求不是https。 因此,通過重定向,您嘗試進行設置,服務器將傳入的http請求重定向到https並將其發送回解析器,結果您得到了循環重定向。

您需要執行一些簡單的步驟來解決此問題。 登錄到儀表板,打開Nginx Balancer的設置

在此處輸入圖片說明

導航到/ conf下的nginx-jelastic.conf

在此處輸入圖片說明

並將代碼添加到配置文件中:

# force https-redirects
if ($http_X_Forwarded_Proto = http) {
    return 302 https://$host$request_uri;
}

nginx的-jelastic.conf

完成配置后,請不要忘記按下“保存”按鈕並重新啟動Nginx。

(Всемпривет)使用域ssl,此變體可以正常工作

if ( $scheme = "http" ) { rewrite ^(.*)$    https://$host$1 last; }

接受的解決方案不適用於我的設置。 我必須將if語句更改為以下內容:

if ($http_x_forwarded_proto != "https") {
  return 301 https://$host$request_uri;
}

如官方的Nginx文檔https://www.nginx.com/blog/creating-nginx-rewrite-rules#https中所述,您應該使用:

return 301 https://$host$request_uri;

效果也不錯。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM