Express 同一域上的HTTPS和Websocket API终结点
我已经使用Nginx建立了一个域,并在后台运行Express/Node 该域主要提供HTTPS流量,但我想提供一些WSS流量 在我的Express应用程序中,我已经为每个新端点设置了路由,但我想不出如何在Nginx中最好地设置这些路由。我是否需要为每个路由创建一个服务器块,或者我可以做些什么来最小化对配置的更改 到目前为止,我在Nginx中有这样一个功能: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;
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配置的细节以及你目前所拥有的。