2017-07-11 14 views
1

私のWebサイトの安全なHTTPSバージョンにHTTPトラフィックをリダイレクトしたい。 NodeJS Expressをnginxサーバーで実行しています。どのようなリダイレクトを行うための最善の方法:nginxまたはExpressを使用しますか?パフォーマンスなどの2つのオプションに大きな違いがありますか?HTTPからHTTPSへのリダイレクト - NginxとNode Express

答えて

2

すべての方法によって異なりますが、パフォーマンスの差はごくわずかです。私が通常行っているのは、nginxがSSL鍵と証明書を処理してから、リダイレクトを処理させるときです。そうすれば、NodeアプリケーションはHTTPについて知る必要さえなくても、リバースプロキシからの要求を処理します。

例nginxの設定:

server { 
      listen 80; 
      server_name example.com; 
      add_header Strict-Transport-Security "max-age=3600"; 
      root /www/example.com/html; 
      index index.html index.htm; 

      location/{ 
        return 302 https://example.com$request_uri; 
      } 
    } 

あなたはレッツ・暗号化を使用している場合は、一時的にHTTPSへのリダイレクトをオフにする必要がありますに注意してくださいだけで認定更新時のために - 何かをするので注目に値します認定の更新が失敗したときに診断するのは難しいでしょう。

+0

有益な回答ありがとうございます。私は実際にLet's Encryptを使用していますので、ノードオプションを使用して自分自身と私の同僚に、更新時に無効にすることを忘れてしまうという問題を抱えていると思います。 –

+0

また、301(または308)ではなく302のステータスコードを使用する理由はありますか? –

+1

@DuncanLuk永続的なリダイレクトが必要な場合は301を使用できますが、通常は必要に応じてスイッチを切るオプションがあります。 301はキャッシュされ、将来クライアントが元のURLを使用しないように指示します。私は通常、セキュリティ上の理由からPOST/PUT/DELETEなどをリダイレクトで動作させたくないため、307と308を使用しません。機密性の高いデータを送信したり、リダイレクトしたり、安全に再送信したりすることは望ましくありません。そのケースを中断させ、GET以外のメソッドにHTTPSを明示的に使用させたい。私の場合、リダイレクトは主にブラウザ向けですが、あなたのマイレージは異なる場合があります。 – rsp

関連する問題