我已经使用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;
不确定最好的方法是什么?
提前致谢。