我有几个应用程序服务器(通过PM2)运行多个Node应用程序。

我有一台NGINX服务器,该服务器具有域的SSL证书和Node应用程序的反向代理。

在NGINX配置文件中,我用如下的位置块设置域:

server {
        listen 443 ssl;
        server_name
          geolytix.xyz;

        ssl_certificate /etc/letsencrypt/live/geolytix.xyz/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/geolytix.xyz/privkey.pem;

        location /demo {
            proxy_pass http://159.65.61.61:3000/demo;
            proxy_set_header HOST $host;
            proxy_buffering off;
        }

        location /now {
            proxy_pass https://xyz-heigvbokgr.now.sh/now;
            proxy_set_header HOST $host;
            proxy_buffering off;
        }
}

这仅适用于应用程序服务器。 Zeit Now部署的代理产生错误的网关。如果我转到部署的Zeit Now地址,则应用程序本身将按预期工作。

有人知道我是否会丢失一些设置以代理Zeit Now吗?

最佳答案

现在,服务器需要使用SNI进行https连接。像几乎所有现代Web服务器一样。
您需要添加

proxy_ssl_server_name    on;

您的配置。

最小的位置块如下:
location / {
     proxy_set_header        host my-app.now.sh;
     proxy_ssl_server_name   on;
     proxy_pass              https://alias.zeit.co;
}

关于NGINX代理Zeit Now部署,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50949367/

10-11 01:56