web-dev-qa-db-ja.com

nginxプロキシパスノード、SSL?

私のnginxサーバーは、実際にはノードバックエンド(ポート3000でリッスンしている)を次のようにプロキシしています。

location /api/ {
proxy_pass http://upstream_1;
}

ここで、upstream_1は、nginx.conf(ポート3000)で定義されているノードクラスターです。

Http接続を介してSSLを追加する必要があるので、次の質問があります:sslを有効にするためにnginxを構成するだけでよいですか?そして、リクエストを自動的に「暗号化解除」し、暗号化せずにNodeに渡します。これにより、通常どおり処理できますか?または、sslもサポートするようにNodejsを構成する必要がありますか?

26
spacenick

Nginxを使用してSSLを処理している場合、ノードサーバーはhttpのみを使用します。

    upstream nodejs { 
          server 127.0.0.1:4545 max_fails=0; 
    } 

   server { 
      listen 443; 
      ssl    on; 
      ssl_certificate    newlocalhost.crt; 
      ssl_certificate_key     newlocalhost.key; 
      server_name nodejs.newlocalhost.com; 

      add_header Strict-Transport-Security max-age=500; 

      location / { 
        proxy_pass  http://nodejs; 
        proxy_redirect off; 
        proxy_set_header Host $Host ; 
        proxy_set_header X-Real-IP $remote_addr ; 
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for ; 
        proxy_set_header X-Forwarded-Proto https; 
      } 
   }
75
Bill