跳到主要内容

使用 nginx 负载均衡稳定收看江苏移动 IPTV问题已解决/话题已结束讨论

  • 新帖
  • 热门
  • 精选

使用 nginx 负载均衡稳定收看江苏移动 IPTV 问题已解决/话题已结束讨论

coding 2y ago in IPTV · 0 views

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

Docker Compose 部署

这是我推荐的方式,也可以直接与 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 ~

  • 引用文章
  • 被文章引用
江苏移动魔百盒 全国 CDN 版本 Docker 镜像 pixman/pixman 使用说明 Nginx 代理 TPTV 和 iTV
江苏移动魔百盒 全国 CDN 版本 Docker 镜像 pixman/pixman 使用说明 江苏移动 IPTV 频道更新 无需 IPV6,三网通看移动 iTV 直播源
skylark #31 2024年06月17日

tptv是需专门运营商才可以看么。。

回复此楼 修改
yesircl #32 2024年06月18日

pixman-nginx这个容器删掉后,再创建就启动不了了是什么原因,容器状态一直显示Restarting (1) Less than a second ago 日志: stdout: /docker-entrypoint.sh: Configuration complete; ready for start up stderr: 2024/06/18 00:37:35 [emerg] 1#1: host not found in upstream "tptv2.mobaibox.com" in /etc/nginx/conf.d/tptv.conf:22 stderr: nginx: [emerg] host not found in upstream "tptv2.mobaibox.com" in /etc/nginx/conf.d/tptv.conf:22

回复此楼 修改
coding #33 2024年06月18日
对 yesircl #32 回复

tptv2 已被关闭,nginx 配置里删掉 server 127.0.0.1:8002 weight=1 max_fails=1 fail_timeout=60s; 这一行吧

回复此楼 修改
coding #34 2024年06月18日
对 skylark #31 回复

不是

回复此楼 修改
ccf #35 2024年06月18日

在办公室电脑上测试了下第二种方案,没有server,http://127.0.0.1:5000/tptv.m3u?cdn=tptv 和http://127.0.0.1:5000/tptv.m3um3u文件,但是没法播放,这是怎么回事都能下来

回复此楼 修改
skylark #36 2024年06月18日

为何能拉列表。但播放不了呢。。

回复此楼 修改
yifan33539 #37 2024年06月18日

好像已经不行了,用的负载均衡部署,昨天还可以,现在看不了

回复此楼 修改
coding #38 2024年06月18日
对 ccf #35 回复

cdn 改为 tptv1

回复此楼 修改
coding #39 2024年06月18日
对 skylark #36 回复

很明显 UA 被拉黑了,你尝试给播放器修改下 user-agent,比如 okhttp 之类的

回复此楼 修改
coding #40 2024年06月18日
对 yifan33539 #37 回复

更新为最新 pixman 镜像,没问题的

回复此楼 修改
q273432882 #41 2024年06月20日

按照你的教程在群晖上用Docker Compose命令拉取了pixman和nginx镜像,修改了本地ip和端口,tvtp.conf文件也删除了 " # 修改 YOUR_DOMAIN 为你自己的域名,没有域名就删除 server_name 这一行 server_name YOUR_DOMAIN;"现在结果4GTV和正常观看,但是江苏iptv用“http://ip:5000/tptv.m3u?cdn=ip:8000m3u文件,就是无法播放。不知道哪里弄错了,想问下tptv.conf文件可以在windows10上用txt文件创建粘贴代码,重命名tptv.conf。再上传到群晖ngnix文件夹下吗?”能够下载

回复此楼 修改
coding #42 2024年06月20日
对 q273432882 #41 回复

可以的

回复此楼 修改
coding 在 无需 IPV6,三网通看移动 iTV 直播源 提及了此话题。 2024年06月20日
kylin #44 2024年06月21日

大佬麻烦问一下不是江苏地区可以看吗?我用群晖部署好了,两个容器都起来了,播放不出画面,坐标辽宁沈阳

回复此楼 修改
coding #45 2024年06月21日
对 kylin #44 回复

当然是全国可看啊,不然这么折腾干嘛呢

回复此楼 修改
kylin #46 2024年06月21日
对 coding #45 回复

谢谢大佬,为啥我看不了,4gtv和央视频都没问题 ,奇怪了一会下班回家研究一下!

回复此楼 修改
kylin #47 2024年06月21日
对 kylin #46 回复

虚拟机测试,成功了,一会可以试试群晖了,大佬6666

回复此楼 修改
coding 关闭了讨论。 2024年06月22日
  • 上一页
  • 1
  • 2
收到新回复,点击立即加载
需要 登录 后方可回复, 如果你还没有账号请 注册新账号
Coding
@coding
有事请发帖 @coding 或 联系 [email protected]
统计信息
会员
1,786
话题
259
回帖
2,955
活跃会员 查看排行
Devin
Koguan
nt01xp
jmk92
859876741
kewycjy
cnvc
kkk00011
0xyyyy
wayne630
zf7222749
zmy123
Unlovely
bos5201314
scjxx
once
wykds
LeoXD
a15ban
gally

A digital lifestyle community co-maintained by Pixer

本网站服务器由 提供,CDN 由 提供,基于 Homeland 构建,采用 Docker 部署。