Zeit Now 部署的 NGINX 代理

标签 nginx reverse-proxy vercel

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

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

在 NGINX 配置文件中,我设置了域及其位置 block ,如下所示:

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 连接。就像几乎所有现代网络服务器一样。 您需要添加

proxy_ssl_server_name    on;

您的配置。

最小的位置 block 如下:

location / {
     proxy_set_header        host my-app.now.sh;
     proxy_ssl_server_name   on;
     proxy_pass              https://alias.zeit.co;
}

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

相关文章:

ubuntu - 使用现有的 Nginx 安装转发到 GitLab 子域

Django 与 nginx 总是返回错误 404

ruby-on-rails - 默认情况下,Rails 应用程序如何在没有 Web 服务器的情况下单独与 Puma 一起运行

nginx - Kubernetes 入口问题

tomcat - 如何设置 TeamCity 以通过 https 进行公共(public)访问?

next.js - 如何在下一个js应用程序文件夹中使用vercel og图像?

node.js - Zeit 构建失败 - 错误 : No output directory named "build" found

apache - 设置后引入NGINX反向代理的NGINX如何配置SSL透传?

java - 使用Apache http-core-4.3.3开发的反向代理如何重写目标URL

express - 使用 Vercel 作为前端,使用 Heroku 作为 api