nginx代理服务器上的连接问题(可能是socket.io问题)

nginx代理服务器上的连接问题(可能是socket.io问题),nginx,networking,socket.io,reverse-proxy,Nginx,Networking,Socket.io,Reverse Proxy,希望有人能帮助我,因为我已经为这个项目奋斗了两个多星期-这让我发疯 项目 我有一个开源的媒体播放器运行在树莓皮。我想通过HTTPS连接访问它,所以我有一个域名指向我的家庭路由器。端口转发指向运行nginx的单独服务器。我有一个非常基本的nginx配置,它似乎是真实的,它正在向我的媒体服务器发送SSL请求 错误 当我导航到媒体服务器的https地址时,我可以加载页面,并且可以看到媒体播放器的UI——但它被一个“灰色”屏幕覆盖,并且有一个永不停止的旋转轮。所以它没有完全加载 当我在Chrome中进入

希望有人能帮助我,因为我已经为这个项目奋斗了两个多星期-这让我发疯

项目 我有一个开源的媒体播放器运行在树莓皮。我想通过HTTPS连接访问它,所以我有一个域名指向我的家庭路由器。端口转发指向运行nginx的单独服务器。我有一个非常基本的nginx配置,它似乎是真实的,它正在向我的媒体服务器发送SSL请求

错误

当我导航到媒体服务器的https地址时,我可以加载页面,并且可以看到媒体播放器的UI——但它被一个“灰色”屏幕覆盖,并且有一个永不停止的旋转轮。所以它没有完全加载

当我在Chrome中进入Google开发者控制台时,我会得到这些提示/症状

媒体服务器;在正常情况下,可通过本地网络上的HTTP访问。有一组连接如下所示:

http://192.168.1.7/socket.io/?EIO=3&tran …

然而,在HTTPS连接上,我得到了很多“红色”条目。像这样:

GEThttp://127.0.0.1:3000/socket.io/?EIO=3&transport=polling&t=M_HFcoc
网络::错误连接被拒绝

所以在HTTPS上,我的请求将转到127.0.0.1;当它们应该达到192.168.1.7时。这似乎是websocket/socket.io问题

配置

error_log  /var/log/nginx/error.log  notice;


events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;


    #access_log  logs/access.log  main;
access_log off;
    sendfile        on;
    #keepalive_timeout  0;
    keepalive_timeout  65;

    gzip  off;
    proxy_buffering off;
    fastcgi_keep_conn on;

    #start server1 section
    server {
      listen        80;
      listen   443 ssl;
       server_name my-domain.com;
       ssl_certificate /etc/letsencrypt/live/my-domain.com/fullchain.pem;
       ssl_certificate_key /etc/letsencrypt/live/my-domain.com/privkey.pem;

        ssl_protocols       TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers         HIGH:!aNULL:!MD5;
        underscores_in_headers on;

        access_log  /var/log/nginx/access.log;

        location / {
            proxy_pass http://192.168.1.7/;
            proxy_set_header Host $host;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
            index  index.php index.html index.htm;
            }
    }
}
我的修复尝试

在做了一些研究之后,我添加了以下内容。在http块内部,但在位置块外部

upstream io_nodes {
  ip_hash;
  server 192.168.1.7;
}
然后添加了一个新的位置块

location /socket.io/ {
        proxy_pass http://io_nodes/socket.io/;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_http_version 1.1;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $host;
    }
问题

因此,我试图修复没有任何效果。我的第一个问题是,为什么我的服务器在端口80上代理时工作,然后在尝试SSL时失败?Socket.io连接在HTTP连接上正常

虽然我对socket.io和nginx做了一些研究,但我没有明确遵循您可以找到的官方nginx说明。我错过了台阶吗?该资源描述“将如下JavaScript代码添加到交付给客户机的文件中”——我不能这样做。我无法控制媒体服务器的内容

谁能帮我往前走吗?谢谢