Express 同一域上的HTTPS和Websocket API终结点

Express 同一域上的HTTPS和Websocket API终结点,express,nginx,websocket,Express,Nginx,Websocket,我已经使用Nginx建立了一个域,并在后台运行Express/Node 该域主要提供HTTPS流量,但我想提供一些WSS流量 在我的Express应用程序中,我已经为每个新端点设置了路由,但我想不出如何在Nginx中最好地设置这些路由。我是否需要为每个路由创建一个服务器块,或者我可以做些什么来最小化对配置的更改 到目前为止,我在Nginx中有这样一个功能: server { listen 443 ssl; root /sites/api.domain.tld/app;

我已经使用Nginx建立了一个域,并在后台运行Express/Node

该域主要提供HTTPS流量,但我想提供一些WSS流量

在我的Express应用程序中,我已经为每个新端点设置了路由,但我想不出如何在Nginx中最好地设置这些路由。我是否需要为每个路由创建一个服务器块,或者我可以做些什么来最小化对配置的更改

到目前为止,我在Nginx中有这样一个功能:

server {

    listen 443 ssl;

    root /sites/api.domain.tld/app;
    index app.js;

    server_name api.domain.tld;

    location / {

            proxy_pass http://127.0.0.1:5000;

    }

    gzip on;

    access_log /sites/api.domain.tld/logs/access.log combined;
    error_log /sites/api.domain.tld/logs/error.log error;

    ssl_certificate /etc/letsencrypt/live/api.domain.tld/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/api.domain.tld/privkey.pem;
    include /etc/letsencrypt/options-ssl-nginx.conf;
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;

}


server {

    listen 80;

    server_name api.domain.tld;

    if ($host =api.domain.tld) {
            return 301 https://$host$request_uri;
    }

    return 404;

}
我知道我需要添加Websocket升级配置:

proxy_pass http://127.0.0.1:5020;
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;
只是不确定最好的方法是什么


提前感谢。

NGINX中应该只需要一个配置,就可以将所有适当的web流量转发到您的服务器。NGINX中不需要任何特定于路由的内容。然后,webSocket流量还需要另一种配置,同样,对于任何路由或API都没有特定的配置,只是一般的webSocket配置。如果你想让人们更具体地帮助你,你需要展示你的NGINX配置的细节以及你目前所拥有的。