Refactor nginx.conf for stream-link proxy settings

This commit is contained in:
rad168 authored and GitHub committed 2026-02-17 15:38:55 +08:00
1 parent 721e553f84
commit 8ffb040581
1 file changed
+42 -66
+42 -66
View File
@@ -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;
}
}
# 反代设置:订阅链接