From 8ffb0405812535c0ccd25e5f78fc1576bf513567 Mon Sep 17 00:00:00 2001 From: rad168 <86744795+rad168@users.noreply.github.com> Date: Tue, 17 Feb 2026 15:38:55 +0800 Subject: [PATCH] Refactor nginx.conf for stream-link proxy settings --- mytv/alpine/nginx.conf | 108 ++++++++++++++++------------------------- 1 file changed, 42 insertions(+), 66 deletions(-) diff --git a/mytv/alpine/nginx.conf b/mytv/alpine/nginx.conf index cb323c9..13cb7e9 100644 --- a/mytv/alpine/nginx.conf +++ b/mytv/alpine/nginx.conf @@ -908,87 +908,63 @@ http { } - # 反代设置:stream-link + #stream-link反代配置 + resolver 1.1.1.1 ipv6=off valid=30s; + server { - listen 30001; - listen [::]:30001; - server_name cdn.1678520.xyz; # 替换为您的域名 + listen 30001; + listen [::]:30001; + server_name cdn.1678520.xyz; + proxy_ssl_server_name on; + proxy_ssl_verify off; - # 自定义响应头:缓存命中状态和剩余缓存时间 - add_header X-Cache-Status $upstream_cache_status; - add_header X-Cache-TTL $upstream_http_x_cache_ttl; + # ===== 通用请求头 ===== + proxy_set_header User-Agent "TiviMate/5.1.0"; + proxy_set_header Referer "https://www.stream-link.org/"; + proxy_set_header Accept "*/*"; + proxy_set_header Connection "keep-alive"; - # 固定请求头 - proxy_set_header User-Agent "TiviMate/5.1.0"; - proxy_set_header Referer "https://www.stream-link.org/"; - proxy_set_header Host www.stream-link.org; - proxy_set_header Accept "*/*"; # 允许所有类型的内容 - proxy_set_header Connection "keep-alive"; - - # 代理头设置 - #proxy_set_header X-Real-IP $remote_addr; # 传递客户端真实 IP - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # 支持多级代理 - - # SSL 配置 - proxy_ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; # 指定 SSL 协议 - proxy_ssl_ciphers HIGH:!aNULL:!MD5; # 设置加密套件 - proxy_ssl_verify off; # 忽略上游服务器证书验证 - proxy_ssl_server_name on; - - # 默认缓存配置 - proxy_cache my_cache; # 使用指定的缓存区域 - proxy_cache_lock on; # 启用缓存锁 - proxy_cache_valid 200 206 5s; # 默认对 200 和 206 状态码缓存 5 秒 - proxy_cache_methods GET HEAD; # 仅缓存 GET 和 HEAD 请求 - proxy_ignore_headers Cache-Control Expires; # 忽略上游响应的缓存控制头 - expires 5s; # 设置浏览器端缓存 5 秒 - - # 默认 location 配置 - location / { - proxy_pass https://www.stream-link.org; # 替换为您的源站地址 - } - - # 针对 m3u 文件内容修改 + # m3u订阅文件 location ~ \.m3u$ { proxy_pass https://www.stream-link.org; + proxy_set_header Host www.stream-link.org; - # 替换为相对路径 - sub_filter 'https://sc2026.stream-link.org' 'http://$host:30002'; + # 把源里的播放域名改写成自己 + sub_filter 'https://sc2026.stream-link.org' 'http://$host:30001'; sub_filter_once off; - #sub_filter_types application/vnd.apple.mpegurl text/plain; - # 解压 gzip 压缩内容(如源站启用了压缩) gzip off; proxy_set_header Accept-Encoding ""; - } + proxy_intercept_errors on; + error_page 301 302 307 = @redirect; + } - } + # 播放请求 + location / { + proxy_pass https://sc2026.stream-link.org; + proxy_set_header Host sc2026.stream-link.org; + proxy_intercept_errors on; + error_page 301 302 307 = @redirect; + } - server { - listen 30002; - listen [::]:30002; - server_name cdn.1678520.xyz; + # 自动跟随跳转 + location @redirect { + set $redirect_url $upstream_http_location; - location / { - proxy_pass https://sc2026.stream-link.org; - proxy_set_header Host sc2026.stream-link.org; - proxy_set_header User-Agent "TiviMate/5.1.0"; - proxy_set_header Referer "https://sc2026.stream-link.org/"; - proxy_redirect ~https?://[^/]+(/.*) http://$host:30003$1; - } - } + # 处理相对跳转 + if ($redirect_url ~ "^/") { + set $redirect_url https://$proxy_host$redirect_url; + } - server { - listen 30003; - listen [::]:30003; - server_name cdn.1678520.xyz; + proxy_pass $redirect_url; - location / { - proxy_pass https://live-edge-01.stream-link.org; - proxy_set_header Host live-edge-01.stream-link.org; - proxy_set_header User-Agent "TiviMate/5.1.0"; - proxy_set_header Referer "https://live-edge-01.stream-link.org/"; - } + proxy_set_header Host $proxy_host; + proxy_set_header User-Agent "TiviMate/5.1.0"; + proxy_set_header Referer $redirect_url; + proxy_ssl_server_name on; + proxy_intercept_errors on; + error_page 301 302 307 = @redirect; + } } # 反代设置:订阅链接