1
0
mirror of https://github.com/hanxi/xiaomusic.git synced 2026-03-29 10:29:45 +08:00
Files
xiaomusic/docs/issues/533.md
Issues Docs [BOT] e4cf48e234 Auto-Generate docs 🤖
2026-01-05 11:36:15 +00:00

199 lines
7.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
title: 反向代理因为html中绝对路径导致超链接失效
---
# 反向代理因为html中绝对路径导致超链接失效
反向代理因为html中绝对路径导致超链接失效
## 评论
### 评论 1 - wuxinyumrx
更新一下解决方案nginx反向代理配置如下需要nginx包含http_sub_module
```
proxy_http_version 1.1;
proxy_pass http://xx.xx.xx.xx:58090/;
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 X-Forwarded-Proto $scheme;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS';
add_header Access-Control-Allow-Headers 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization';
proxy_set_header Accept-Encoding "";
sub_filter_types *;
sub_filter_once off;
sub_filter '/ws/' '/xm/ws/';
sub_filter '/static/' '/xm/static/';
sub_filter '/musiclist' '/xm/musiclist';
sub_filter '/musicinfo' '/xm/musicinfo';
sub_filter '/curplaylist' '/xm/curplaylist';
sub_filter '/generate_ws_token' '/xm/generate_ws_token';
sub_filter '/getversion' '/xm/getversion';
sub_filter '/getsetting' '/xm/getsetting';
sub_filter '/getvolume' '/xm/getvolume';
sub_filter '/setvolume' '/xm/setvolume';
sub_filter '/playingmusic' '/xm/playingmusic';
sub_filter '/searchmusic' '/xm/searchmusic';
sub_filter '/latestversion' '/xm/latestversion';
sub_filter '/cmd' '/xm/cmd';
sub_filter '"musiclist' '"xm/musiclist';
sub_filter '"musicinfo' '"xm/musicinfo';
sub_filter '"curplaylist' '"xm/curplaylist';
sub_filter '"generate_ws_token' '"xm/generate_ws_token';
sub_filter '"getversion' '"xm/getversion';
sub_filter '"getsetting' '"xm/getsetting';
sub_filter '"getvolume' '"xm/getvolume';
sub_filter '"setvolume' '"xm/setvolume';
sub_filter '"playingmusic' '"xm/playingmusic';
sub_filter '"searchmusic' '"xm/searchmusic';
sub_filter '"latestversion' '"xm/latestversion';
sub_filter '"cmd' '"xm/cmd';
sub_filter '/manifest.json' '/xm/manifest.json';
sub_filter '"start_url": "/"' '"start_url": "/xm/"';
sub_filter '"scope": "/"' '"scope": "/xm/"';
```
---
### 评论 2 - wooodxi
首先感谢各位大佬辛苦的付出。
我是家庭使用的威联通NAS部署的xiaomusic,NAS上也是使用的docker部署的是frpc客户端nas上填写对应的端口号在云服务使用docker部署的frps服务端填写二级ssl域名这样的反向代理部署好以后外网通过链接https:xxx.xxx.xx是可以访问xiaomusic播放歌曲音箱却没有声音但是你们的测试播放连接是可以播放音乐 包括点击停止播放音箱也是可以回应听到音箱发出再见收到的声音,就是播放歌曲音箱不出声。希望可以得到解答。 谢谢大佬
---
### 评论 3 - hanxi
@wooodxi 需要改设置页面的ip和端口。
---
### 评论 4 - 13267740993
nginx 502 要关闭浏览器再打开才行 帮忙看下啥原因
server {
listen 80;
server_name www.music.cn;
# ================================
# 根路径:原始反向代理(不做路径替换)
# ================================
location / {
# 反向代理到本机 58090 服务
proxy_pass http://127.0.0.1:58090;
# 使用 HTTP/1.1,避免 keep-alive / chunked 问题
proxy_http_version 1.1;
# 清空 Connection 头,交由 Nginx 自动管理
proxy_set_header Connection "";
# 转发客户端真实信息
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 X-Forwarded-Proto $scheme;
# 连接 / 读取 / 发送超时设置,防止 502
proxy_connect_timeout 60s;
proxy_send_timeout 60s;
proxy_read_timeout 60s;
send_timeout 60s;
# 上传文件大小限制
client_max_body_size 100m;
}
# =================================================
# /xm/ 路径:子路径部署(带 WebSocket + sub_filter
# =================================================
location /xm/ {
# 反向代理到后端服务根路径
proxy_pass http://127.0.0.1:58090/;
# 使用 HTTP/1.1WebSocket 必须)
proxy_http_version 1.1;
# WebSocket 升级头
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
# 转发客户端信息
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 X-Forwarded-Proto $scheme;
# 禁用 gzip否则 sub_filter 无法生效
proxy_set_header Accept-Encoding "";
# ========== sub_filter 内容替换 ==========
# 对所有响应类型生效HTML / JS / JSON
sub_filter_types *;
# 页面中出现多次也全部替换
sub_filter_once off;
# 接口路径统一加 /xm 前缀
sub_filter '"/' '"/xm/';
sub_filter "'/" "'/xm/";
# WebSocket 路径修正
sub_filter '/ws/' '/xm/ws/';
# 静态资源路径修正
sub_filter '/static/' '/xm/static/';
# PWA / manifest 相关路径修正
sub_filter '/manifest.json' '/xm/manifest.json';
sub_filter '"start_url": "/"' '"start_url": "/xm/"';
sub_filter '"scope": "/"' '"scope": "/xm/"';
# ========== CORS 跨域配置 ==========
add_header Access-Control-Allow-Origin $http_origin always;
add_header Access-Control-Allow-Credentials true always;
add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS' always;
add_header Access-Control-Allow-Headers
'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization'
always;
# OPTIONS 预检请求直接返回
if ($request_method = OPTIONS) {
return 204;
}
# 超时配置
proxy_connect_timeout 60s;
proxy_send_timeout 60s;
proxy_read_timeout 60s;
send_timeout 60s;
# 上传大小限制
client_max_body_size 100m;
}
# ================================
# 502 错误页
# ================================
error_page 502 /502.html;
}
---
### 评论 5 - hanxi
我也不熟 nginx 配置,建议使用 https://github.com/jc21/nginx-proxy-manager 配置 proxy ,简单的 GUI 操作就行。
---
[链接到 GitHub Issue](https://github.com/hanxi/xiaomusic/issues/533)