因此,我在本地网络上有一个小型 Raspberry Pi,用于托管服务器。这是一个相当简单的设置,nginx 和我的 npm 托管服务器使用 docker-compose 在容器中建立。
我的 npm 服务器监听端口 30000。
这是我的 nginx 设置
server {
# Listen on port 80
listen 80;
listen [::]:80;
# Sets the Max Upload size to 100 MB
client_max_body_size 100M;
# Enable compression
gzip on;
gzip_disable "MSIE [1-6]\.";
gzip_comp_level 6;
gzip_min_length 1024;
gzip_buffers 16 8k;
gzip_proxied any;
gzip_types
<a bunch of gzip types>
# Proxy Requests to server
location / {
# Set proxy headers
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# These are important to support WebSockets
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
# Make sure to set your port number
proxy_pass http://npmServer:30000;
}
}
当我提供静态内容时,我没有遇到任何问题。但是当我尝试连接时ws://<PiIP>/socket.io/...
,浏览器终端中出现连接失败消息,当我在 docker compose 中检查日志时,我看到一堆connect() failed (111: Connection Refused)
错误。
有没有办法以某种方式添加 socket.io 位置?我甚至与一些使用完全相同设置托管相同基于 npm 的项目的人交谈过,他们也不知道发生了什么。