qier222 / YesPlayMusic

高颜值的第三方网易云播放器,支持 Windows / macOS / Linux :electron:
https://music.qier222.com
MIT License
27.77k stars 4.09k forks source link

Docker部署无法通过https扫码登录 #2166

Closed 450816775 closed 7 months ago

450816775 commented 7 months ago

反馈 bug 需要的信息

大家有遇到类似的情况吗?都是怎么解决的?

colawithsauce commented 7 months ago

刚刚解决了这个问题,希望能有所帮助: 按 f12 查看网络情况,可以看到访问 API 会返回 502 错误

查阅 nginx 的Log可知,是上游返回了过大的 header: image

查看项目根目录下的: docker/nginx.conf.example

server {
  gzip on;
  listen       80;
  listen  [::]:80;
  server_name  localhost;

  location / {
    root      /usr/share/nginx/html;
    index     index.html;
    try_files $uri $uri/ /index.html;
  }

  location @rewrites {
    rewrite ^(.*)$ /index.html last;
  }

  location /api/ {
    proxy_buffers           16 32k;
    proxy_buffer_size       128k;
    proxy_busy_buffers_size 128k;
    proxy_set_header        Host $host;
    proxy_set_header        X-Real-IP $remote_addr;
    proxy_set_header        X-Forwarded-For $remote_addr;
    proxy_set_header        X-Forwarded-Host $remote_addr;
    proxy_set_header        X-NginX-Proxy true;
    proxy_pass              http://localhost:3000/;
  }
}

其中 /api 写了 proxy_buffers之类的参数,所以我们只需要将这些参数统统复制到 host 机器上面的 nginx 就好了,如下:

        # .......
        location / {
                proxy_pass http://localhost:1234/;

                proxy_buffers           16 32k;
                proxy_buffer_size       128k;
                proxy_busy_buffers_size 128k;

                proxy_set_header        Host $host;
                proxy_set_header        X-Real-IP $remote_addr;
                proxy_set_header        X-Forwarded-For $remote_addr;
                proxy_set_header        X-Forwarded-Host $remote_addr;
                proxy_set_header        X-NginX-Proxy true;

                # proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
        # .......

最后再在host机器上面执行:sudo nginx -s reload

450816775 commented 7 months ago

非常感谢你的帮助!!

LoCCai commented 2 weeks ago

你好大佬,我是用了群晖7.2最新的webstation,它的网页服务可以把容器端口监听过来,然后群晖80/443端口转出,这样可以设置二级域名方案或者名称xx.top/xxx这样的形式。但是这样部署登录时提示502错误,群晖日志显示也是502,感觉是配置文件的问题,但是webstation重启后对应网站的nginx配置文件直接消失了,想请教下有什么方案处理吗(不重新编译群晖nginx)