Node.js nginx中的主机多服务器块(https)

Node.js nginx中的主机多服务器块(https),node.js,nginx,Node.js,Nginx,我当前的nginx配置如下所示 server { listen 80 default_server; listen [::]:80 default_server; server_name api.myapp.com; location / { proxy_pass http://localhost:3001; proxy_http_version 1.1; proxy_set_header Upgrade $ht

我当前的nginx配置如下所示

server {
    listen 80 default_server;
    listen [::]:80 default_server;

    server_name api.myapp.com;

    location / {
        proxy_pass http://localhost:3001;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }
}

它在
api.example.com
上托管我的生产webapp,但是现在我需要另一个配置来进行我的临时构建。我可以在
http://localhost:3002
但是由于暂存webapp也必须是https,那么第二个配置块是否应该在nginx中?

否,因为api.myapp.com也在https上,我不必在nginx中进行任何ssl配置,因为它是在node app中处理的。那么,您的意思是用户通过http访问您的网站时的ssl配置、nginx代理传递、nginx代理传递吗。我已经按照这一思路改变了我的职位。如果我错了,我很抱歉我可能会帮你更多,不,我有两个应用,一个用于生产,另一个用于暂存。你想通过访问路由来区分代理传递哪个应用吗
server {
    listen 80 default_server;
    listen [::]:80 default_server;
    listen 443 ssl;
    listen [::]:443 ssl;

    server_name api.myapp.com;
    ###
    ssl configure
    ###

    location / { 
        if ($server_port = 443) {
            proxy_pass http://localhost:3002;
        }
        if ($server_port = 80) {
            proxy_pass http://localhost:3001;
        }
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;   

    }      
}