我目前使用此Nginx配置:

server {
    listen 80;
    return 301 https://$host$request_uri;
}

server {

    listen 443;
    server_name www.domain.com;

    ssl_certificate           /etc/nginx/cert.crt;
    ssl_certificate_key       /etc/nginx/cert.key;

    ssl on;
    ssl_session_cache  builtin:1000  shared:SSL:10m;
    ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
    ssl_prefer_server_ciphers on;

    access_log            /var/log/nginx/domain.access.log;

    location / {

      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 $scheme;

      # Fix the “It appears that your reverse proxy set up is broken" error.
      proxy_pass          http://localhost:8086;
      proxy_read_timeout  90;

      proxy_redirect      http://localhost:8086 https://www.domain.com;
    }
}


有了这个,我没有问题,但是我只看到包含以下内容的this问题:

express : {
    serverOptions : {
        key: fs.readFileSync('ssl/server.key'),
        cert: fs.readFileSync('ssl/server.crt')
    }
}


使用https的最佳方法是什么?我托管在Google Cloud中,并且使用Nginx proxy_pass在不同的端口中有一些页面。

最佳答案

我不知道您是否正在考虑完全删除Nginx并直接为您的节点应用程序提供服务。但是,如果您不打算完全删除它,我宁愿将配置保留在Nginx中,以区分应用程序和Web服务器的职责。

使用Nginx,您还可以准备添加诸如负载平衡,反向代理缓存,更有效地提供资产等功能。

10-05 21:06
查看更多