Nginx

Nginx:反向代理和 http 到 https 重定向

  • August 17, 2015

我目前使用反向代理映射my.domain.com到埠 5000,但也想將 http 流量重定向到 https。我不想添加 SSL 證書資訊,因為這一切都由 Cloudflare 處理。

這是我的工作反向代理:

server {
   listen 80;
   server_name my.domain.com;

   proxy_set_header X-Real-IP  $remote_addr;

   location / {
       proxy_pass http://localhost:3000;
   }
}

這是我ERR_TOO_MANY_REDIRECTS嘗試將 https 重定向添加到反向代理的失敗 ( ) 嘗試。

server {
   listen 80;
   server_name my.domain.com;
   return 302 https://my.domain.com$request_uri;
}

server {
   listen 443;
   server_name my.domain.com;

   proxy_set_header X-Real-IP  $remote_addr;

   location / {
       proxy_pass http://localhost:3000;
   }
}

您希望您的網路伺服器如何知道連接到 Cloudflare 是通過 HTTPS 還是 HTTP?基本上有兩種選擇:

  1. Cloudflare 設置一個標頭,指示請求是否通過 HTTPS 發送給他們;或者
  2. 通過 HTTPS 與 Cloudflare 的連接也通過 HTTPS 代理給您。

我認為 Cloudflare 支持選項 1,但我現在找不到任何文件。但是,它們絕對支持選項 2,您甚至不需要購買自己的 TLS 證書即可。我強烈建議您這樣做,並在您的 nginx 伺服器上啟用埠 443 以使用 TLS。

引用自:https://serverfault.com/questions/714589