Update:
最新版已有更简单的方式,此贴关闭,使用方法参考 https://pixman.io/topics/16
也可以使用新版的 nginx 配置,参考:https://pixman.io/topics/39
江苏移动直播源 最近新增了阿里云 CDN,但是也存在不稳定性,以及对于 UA 的限制,有些播放器或者电视机上的 APP 不太容易调整 UA,而且 CDN 可用性的变化会导致在播放中可能需要时不时调整订阅,体验很不好。
下面分享一种使用 nginx 负载均衡来提高观看稳定性的方式,这种方式仅限于部署在自家软路由或内网内的服务器,不建议部署到云服务器,除非你服务器的流量不要钱 (Doge。
有两种使用方法,我建议直接用 Docker Compose 方式。
首先我们创建一个目录来保存自定义的 nginx 配置文件 (放在任何位置都可以,下面以 /opt/pixman/nginx
为例
mkdir -p /opt/pixman/nginx
touch /opt/pixman/nginx/tptv.conf
tptv.conf 内容如下
server {
listen 8001 default_server;
location / {
set $ua 'okhttp/3';
if ($arg_ua) {
set $ua $arg_ua;
}
proxy_pass http://tptv1.mobaibox.com;
proxy_set_header Host tptv1.mobaibox.com;
proxy_set_header User-Agent $ua;
proxy_connect_timeout 3;
}
}
server {
listen 8002 default_server;
location / {
set $ua 'okhttp/3';
if ($arg_ua) {
set $ua $arg_ua;
}
proxy_pass http://tptv2.mobaibox.com;
proxy_set_header Host tptv2.mobaibox.com;
proxy_set_header User-Agent $ua;
proxy_connect_timeout 3;
}
}
upstream cdn_server {
server 127.0.0.1:8001 weight=1 max_fails=1 fail_timeout=60s;
# tptv2.mobaibox.com 貌似被关闭,暂时注释掉
# server 127.0.0.1:8002 weight=1 max_fails=1 fail_timeout=60s;
}
server {
listen 8000 default_server;
# 修改 YOUR_DOMAIN 为你自己的域名,没有域名就删除 server_name 这一行
server_name YOUR_DOMAIN;
location / {
proxy_next_upstream error timeout http_502 http_503 http_504;
proxy_pass http://cdn_server;
}
}
编辑好这个文件后,使用下面命令启动 nginx
docker run -d --name=pixman-nginx -p 8000:8000 -v /opt/pixman/nginx:/etc/nginx/conf.d --restart=always nginx
启动完成后,pixman 容器也需要启动,具体可以看 https://pixman.io/topics/17
然后使用 http://ip:port/tptv.m3u?cdn=YOUR_DOMAIN:8000
播放。
如果你在前面修改 nginx 的时候删掉了 server_name 设置,则直接使用宿主机的 ip 来访问,http://ip:5000/tptv.m3u?cdn=ip:8000
这是我推荐的方式,也可以直接与 pixman 一起部署,方便快捷,以下示例中,文件全部放在 /opt/pixman 目录下,具体的文件结构如下:
docker-compose.yml 内容 (192.168.50.50:7890 换成你自己的代理服务器)
services:
pixman:
image: pixman/pixman:latest
restart: always
container_name: pixman
environment:
- http_proxy=http://192.168.50.50:7890
- https_proxy=http://192.168.50.50:7890
- MYTVSUPER_TOKEN=TOKEN
ports:
- 5000:5000
pixman-nginx:
image: nginx:latest
restart: always
container_name: pixman-nginx
ports:
- 8000:8000
volumes:
- ./nginx:/etc/nginx/conf.d
tptv.conf 内容与前面的一致,不再重复
准备完毕后,在 /opt/pixman 目录下运行 docker compose up -d
即可一键拉起 pixman 和 nginx 容器,接下来的操作与上面命令行方式一致,订阅,观看,Enjoy it ~