用nginx反向代理来expression获取ERR_CONNECTION_REFUSED

我收到一个ERR_CONNECTION_REFUSED错误,试图将代理从nginx转换为带有SSL的socket.io服务器。

这是我的设置:

在/ var / nginx的/网站可用/默认

 server { listen 80; server_name www.example.com; root /var/node/example.com/dist; index index.html; # Static build files location / { proxy_pass http://localhost:8080; 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; } # socket.io location /socket.io/ { proxy_pass http://localhost:7070; proxy_http_version 1.1; proxy_set_header Host $host ; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_cache_bypass $http_upgrade; } listen 443 ssl; # managed by Certbot ssl_certificate /etc/letsencrypt/live/www.example.com/fullchain$ ssl_certificate_key /etc/letsencrypt/live/www.example.com/privk$ include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Cer$ ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certb$ if ($scheme != "https") { return 301 https://$host$request_uri; } # managed by Certbot 

} socket.io服务器

 const fs = require('fs') // Server setup with https. const app = require('express')() const https = require('https') // I've copied the certificate files to the server folder and granted permissions to the user. const server = https.createServer({ key: fs.readFileSync('privkey.pem'), cert: fs.readFileSync('fullchain.pem') }, app) server.listen(7070, () => { console.log('socket.io server listening on port 7070...') }) {...} 

客户端连接如此:

 import io from 'socket.io-client' const socket = io.connect('https://localhost:7070', { forceNew: true }) 

这是完整的控制台错误:

 localhost:7070/socket.io/?EIO=3&transport=polling&t=L_ZTTbl Failed to load resource: net::ERR_CONNECTION_REFUSED 1.twitterStream.9343249673cecf3eff08.js:2 GET https://localhost:7070/socket.io/?EIO=3&transport=polling&t=L_ZTUa8 net::ERR_CONNECTION_REFUSED 

我应该提到,完全相同的设置工作正常的expressionapi后端服务器也在同一本地主机,但与不同的端口,所以我真的不确定为什么socket.io服务器连接被拒绝。

我想也许把它改为像socket.example.com而不是本地主机,但我不想让直接通信到socket.i服务器只能通过nginx代理。

你有两分钱吗?