Files
tmxk2021-CF-IPTV/nginx.conf
2025-03-17 11:27:16 +08:00

215 lines
6.9 KiB
Nginx Configuration File
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.
user www-data;
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;
events {
worker_connections 1024; # 提高连接数上限
multi_accept on; # 允许多连接同时接受
}
http {
##
# 基本设置
##
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
keepalive_requests 1000; # 增加连接复用次数
types_hash_max_size 2048;
include /etc/nginx/mime.types;
default_type application/octet-stream;
##
# SSL 设置
##
ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
##
# 日志设置
##
set_real_ip_from 0.0.0.0/0; # 允许所有代理传递真实 IP
real_ip_header X-Forwarded-For;
real_ip_recursive on;
log_format custom '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log custom;
error_log /var/log/nginx/error.log;
##
# Gzip 压缩设置
##
gzip on;
gzip_disable "msie6";
gzip_vary on;
gzip_proxied any;
gzip_comp_level 6;
gzip_buffers 16 8k;
gzip_http_version 1.1;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript video/mp2t application/vnd.ms-fontobject application/x-font-ttf font/opentype font/woff2 image/svg+xml image/x-icon;
##
# 缓存路径配置
##
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=cache_zone:10m max_size=500m inactive=24h use_temp_path=off;
##
# 虚拟主机配置
##
include /etc/nginx/conf.d/*.conf;
# include /etc/nginx/sites-enabled/*;
# 定义变量以简化配置
map $server_port $host_name {
20000 cdn.163189.xyz;
20001 cdn3.163189.xyz;
20002 cdn12.jdshipin.com;
20003 cdn6.163189.xyz;
20004 v2hcdn.jdshipin.com;
20005 edge3.hkdvb.com;
20006 cdn5.163189.xyz;
20007 cdn2.163189.xyz;
20008 aktv.top;
30001 www.stream-link.org;
30002 sc2025.stream-link.org;
30003 live-edge-06.stream-link.org;
}
# 定义默认缓存配置
proxy_cache_valid 200 206 5s;
proxy_cache_methods GET HEAD;
proxy_ignore_headers Cache-Control Expires;
expires 5s;
# 服务器配置
server {
listen 20000 default_server;
listen [::]:20000 default_server;
server_name $host_name; # 使用变量替换域名
# 启用 HTTP/2
listen 443 ssl http2;
add_header X-Cache-Status $upstream_cache_status;
add_header X-Cache-TTL $upstream_http_x_cache_ttl;
proxy_set_header X-Real-IP $remote_addr; # 传递客户端真实 IP
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # 支持多级代理
proxy_set_header Host $host_name; # 确保请求的 Host 匹配 Cloudflare 配置
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 cache_zone; # 使用指定的缓存区域
proxy_cache_lock on; # 启用缓存锁
location / {
proxy_pass https://$host_name; # 使用变量替换源站地址
}
# 针对 .ts 和 .aac 文件的特殊缓存设置
location ~* \.(ts|aac)$ {
proxy_pass https://$host_name; # 使用变量替换源站地址
proxy_cache_valid 200 206 60s; # 缓存 .ts 文件 60 秒
expires 60s; # 设置浏览器端缓存 60 秒
}
# 针对 .m3u8 文件内容修改
location ~ \.m3u8$ {
proxy_pass https://aktv.top;
# 替换为相对路径
sub_filter 'https://aktv.top/AKTV/stream/' '/AKTV/stream/';
sub_filter_once off;
sub_filter_types application/vnd.apple.mpegurl text/plain;
# 解压 gzip 压缩内容(如源站启用了压缩)
gzip off;
proxy_set_header Accept-Encoding "";
}
# 针对 .m3u 文件内容修改
location ~ \.m3u$ {
proxy_pass https://www.stream-link.org;
# 替换为相对路径
sub_filter 'https://sc2025.stream-link.org' 'http://$host:30002';
sub_filter_once off;
# sub_filter_types application/vnd.apple.mpegurl text/plain;
# 解压 gzip 压缩内容(如源站启用了压缩)
gzip off;
proxy_set_header Accept-Encoding "";
}
# 针对包含 smt2.1.5.php 的 URL设置缓存时间为 60 秒
location ~ smt2\.1\.5\.php {
proxy_cache_valid 200 206 60s; # 缓存 60 秒
expires 60s; # 设置浏览器缓存 60 秒
proxy_pass https://cdn12.jdshipin.com;
}
}
# 额外的服务器配置
server {
listen 30001;
listen [::]:30001;
server_name $host_name;
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 Host www.stream-link.org;
proxy_set_header Accept "*/*"; # 允许所有类型的内容
proxy_set_header Connection "keep-alive";
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 cache_zone; # 使用指定的缓存区域
proxy_cache_lock on; # 启用缓存锁
location / {
proxy_pass https://www.stream-link.org; # 使用变量替换源站地址
}
}
# 其他服务器配置
server {
listen 30002;
listen [::]:30002;
server_name $host_name;
location / {
proxy_pass https://sc2025.stream-link.org;
proxy_set_header Host sc2025.stream-link.org;
proxy_set_header User-Agent "TiviMate/5.1.0";
proxy_set_header Referer "https://sc2025.stream-link.org/";
proxy_redirect ~https?://[^/]+(/.*) http://$host:30003$1;
}
}
server {
listen 30003;
listen [::]:30003;
server_name $host_name;
location / {
proxy_pass https://live-edge-06.stream-link.org;
proxy_set_header Host live-edge-06.stream-link.org;
proxy_set_header User-Agent "TiviMate/5.1.0";
proxy_set_header Referer "https://live-edge-06.stream-link.org/";
}
}
}