提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、具体操作环境
  • 二、操作步骤
    • 1.网络请求拓扑图
    • 2.修改配置Nginx.conf
    • 2.重启Nginx
    • 3.使用 flv.js 来实现视频播放功能
  • 总结

前言

最近项目中,有遇到线上系统需要访问内网是视频资源,经过查阅资料及实践。最终实现外网播放视频流。

一、具体操作环境

  1. 线上环境使用 阿里云 服务器2. 内网环境使用 专网与外网互通3. nginx 版本 1.20.14. 视频流格式:WebSocket  ws://5. 前端使用 Vue

二、操作步骤

1.网络请求拓扑图

2.修改配置Nginx.conf


http {upstream live {server 192.168.1.22:1000;keepalive 64;}map $http_upgrade $connection_upgrade {default upgrade;'' close;}server {location /ws_sms {proxy_pass     http://live/sms;proxy_set_header Host $host:$server_port;proxy_http_version 1.1;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection "upgrade";}}}

2.重启Nginx

nginx -s reload

3.使用 flv.js 来实现视频播放功能

  1. 首先使用cnpm 安装 flv.js
  2. 在播放页面引入 flv.js
  3. 直接上干货!!!
<template><div><el-dialog title="视频监控" :visible.sync="dialogVisible" width="60%" :modal="false"><div><video id="videoElement1" name="videoElement" class="centeredVideo" controls muted autoplay width="100%" height="100%" /></div></el-dialog></div></template><script>
import flvjs from 'flv.js'export default {name: 'PreviewDialog',components: { },data() {return {dialogVisible: false}},mounted() {},methods: {init(data) {this.dialogVisible = true// 将原地址替换成 Nginx反向代理的地址 let ws_url = data.httpUrl.replaceAll('192.168.1.22:1000/sms', window.location.host + "/ws_sms")this.$nextTick(() => {if (flvjs.isSupported()) {let player = nullvar videoElement = document.getElementById('videoElement1')player = flvjs.createPlayer({type: 'flv', // => 媒体类型 flv 或 mp4isLive: true, // => 是否为直播流hasAudio: false, // => 是否开启声音url: ws_url // => 视频流地址})player.attachMediaElement(videoElement) // => 绑DOMplayer.load()player.play()} else {console.log('flvjs不支持')}})}}
}
</script>

总结

通过上述步骤,即可完成外网访问内网视频资源。 按此方案可以解决类似问题。
特此记录。

Nginx+Flv:外网播放内网视频流 解决方案相关推荐

  1. 使用NGINX代理通过外网连接内网服务器的mysql和redis等

    使用NGINX代理通过外网连接内网服务器的mysql和redis等 前言 使用工具 安装OpenResty 前言 服务器A.B,现在A和B互通,外网可以访问A,但是访问不到B,数据库等中间件安装在B服 ...

  2. Nginx反向代理:通过外网访问内网数据库(mysql)

    Nginx反向代理:通过外网访问内网数据库 前言 项目场景: 问题描述及分析: 解决方案: 1 在部署nginx里配置端口IP 2 在外网nginx配置反向代理参数 3 重启nginx 前言 部署ng ...

  3. scaner 从外网到内网域渗透

    scaner 从外网到内网域渗透 本次实验环境靶场来自于暗月(moonsec)师傅,文中内容全由个人理解编制,若有错处,大佬勿喷,个人学艺不精:本文中提到的任何技术都源自于靶场练习,仅供学习参考,请勿 ...

  4. 外网访问内网(内网穿透)

    什么是内网穿透 内网穿透,即NAT穿透,网络连接时术语,计算机是局域网内时,外网与内网的计算机节点需要连接通信,有时就会出现不支持内网穿透.就是说映射端口,能让外网的电脑找到处于内网的电脑,提高下载速 ...

  5. scaner从外网到内网域渗透笔记

    scaner 从外网到内网域渗透 1.环境配置 1.1靶场信息 用到的虚拟机共有三个 分别是 12server-db .12-dc .web1 12server-db.web1 这两个可以使用桥接或者 ...

  6. Docker+Frp+NGinx+云服务器 实现HTTPS内网穿透

    Docker+Frp+NGinx+云服务器 实现HTTPS内网穿透 服务端搭建 (用docker-compose 服务器端搭建) 前置条件 1. 一台有公网ip的服务器2. 记得在服务器安全组开放对应 ...

  7. 内网、外网、内网穿透、端口映射、IPV4、IPV6场景探讨

    先附上各自概念,概念性的东西对于我们有一个大概的认识,那么实际使用与生活中又有哪些场景,来一一列举一些,了解下互联网的魅力! 一.内网 内网也叫局域网(Local Area Network,LAN), ...

  8. 工控攻防演示——从外网到内网控制系统设备的入侵

    给实验室写的文章,在安全客上发表,在这里再发下 一.概述 实验目的通过工控靶场学习web渗透.内网渗透.工控安全相关知识技能. 靶场信息本实验通过vmware 搭建了靶场的外网和内网环境,在内网环境中 ...

  9. 让外网访问内网Ngrok工具

    让外网访问内网,通常一些开发的情况下会遇到这种问题,这里记录一个软件工具ngrok. 通常微信客户端,自己做测试可以直接配上本地地址用: 本地做测试服务,连调外网.这个网上有下载地址:https:// ...

最新文章

  1. 分析了 600 多种烘焙配方,机器学习开发出新品
  2. linux系统UDP的socket通信编程
  3. mysql索引_mysql系列:深入理解mysql 索引特性(屡试不爽的mysql索引总结)
  4. Flask 【第七篇】Flask中的wtforms使用
  5. 使用jquery版本的viewer.js图片更新的问题
  6. 大学计算机基础教程模拟选择题,【浙江大学】大学计算机基础教程——习题与参考答案...
  7. Ubantu Server 安装
  8. centos安装python3.6_Centos安装python3.6和pip步骤记录
  9. table-layout:fixed; 表格比例固定
  10. 7月20日专家在线访谈“员工上网管理是否可行”
  11. CMS:内容管理系统
  12. c语言课程设计报告书模板,C语言课程设计报告模板(最终版).doc
  13. 工厂模式及在Spring中的应用
  14. vue导入pdf插件报错
  15. HDMI热插拔原理及信号解析
  16. 我开发了一款软件,完成了舔狗的绝地反杀(代码开源)!
  17. oracle+cascade=gt;true,mysql数据库主外键级联删除脚本RESTRICT -- CASCADE
  18. 数据中心336V直流供电应用热点问题探讨
  19. ethos从入门到精通-7AMD显卡超频
  20. 小皮助手(电脑玩手机游戏) v1.0.0.2 官方版

热门文章

  1. linux如何解除密码锁屏图案大全,手机锁屏图案(锁屏密码)忘记了怎么办?四种方法帮你轻松搞定...
  2. Latex学术论文期刊模版写作总结
  3. 【数理统计】学习笔记05:区间估计
  4. Qt / Qml 中支持多国语言
  5. 【爬虫】分类爬取小米商店的apk
  6. 贵州学业水平测试信息技术软件,贵州2020年普通高中信息技术学业水平考试报名工作的通知...
  7. 想要下载文章 但没有权限?——试试去文献对应的期刊官网碰碰运气
  8. 基于vue.js的饿了么的element-ui的unpkg文件的下载到本地
  9. Binary String
  10. 服务器配置篇 ━━ 中文域名(.公益)解析、党政机关挂标及如何正确运行在服务器