基于nginx在视频播放器与服务器之间反向代理流程

2023-11-09 18:30

本文主要是介绍基于nginx在视频播放器与服务器之间反向代理流程,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1 服务器部署

由于我手里只有内网服务器,可以使用,因此在部署nginx代理服务器,使之在播放器和服务器之间实现反向代理并且缓存内容之前,需要做内网穿透,获得可与外界进行通信的地址。
如果想进行内网穿透,使虚拟机上面的端口可以在公网被访问,可按如下进行配置。其中local_port为虚拟机要开放的端口,remote_port为远程连接端的端口,也是同内网地址进行映射的端口,可用于与外部的通信。

[ssh+端口号]
type = tcp
local_ip = 127.0.0.1
local_port = xxxx
remote_port = xxxx

关于如何进行端口映射的详细信息可以查阅这篇博客:
基于FRP的远程登录与内网穿透。
注意:
进行远程登录的内网端口需要在sshd_config里面进行配置,用来和外界通信的端口不能在sshd_config里添加。加了之后相当于端口就被占用了,不能在nginx里再被使用。

2 nginx缓存的基础

nginx缓存基础
基于nginx在视频播放器与服务器之间反向代理要涉及一些关于nginx的基础知识,这些知识点可以根据上面的链接来快速了解。

3 nginx安装与配置

下面是nginx下载的官方网站。
nginx下载官网
我选择的是Stable version下的nginx-1.24.0.tar.gz。
下载后将其上传到服务器。
接下来利用命令tar zxvf nginx-1.24.0.tar.gz解压nginx-1.24.0.tar.gz压缩包。
接下来cd nginx-1.24.0进入nginx文件夹。
接下来如果要进行nginx的配置与安装,则需要安装nginx的支持项:

sudo apt-get install openssl
sudo apt-get install libssl-dev
sudo apt-get install libpcre3-dev
sudo apt install zlib1g
sudo apt install zlib1g-dev
sudo apt-get install libpcre3-dev
sudo apt-get install libssl-dev

接下来就可以利用命令:sudo ./configure --with-http_ssl_module --with-http_stub_status_module进行配置。
完成配置后,利用sudo makesudo make install完成安装。

nginx安装成功以后,需要对nginx的配置文件进行配置,主要是对nginx反向代理中所需要的缓存功能进行配置。


http {include       mime.types;default_type  application/octet-stream;sendfile        on;#tcp_nopush     on;keepalive_timeout  65;# 设置缓存path,/usr/local/proxy_cache为缓存的路径proxy_cache_path /usr/local/proxy_cache levels=2 keys_zone=myzone:400m inactive=7d max_size=5g;#gzip  on;upstream backend {server 202.38.68.70:1880;}server {listen       8080;server_name  0.0.0.0;#charset koi8-r;#access_log  logs/host.access.log  main;location / {# proxy_cache后的myzone与上面keys_zone后的名称一致proxy_cache myzone;# 表示一个文件被请求多少次后可以被缓存proxy_cache_min_uses 1;# 表示缓存文件可以保持多长时间proxy_cache_valid 200 7d;# 被代理服务器的地址proxy_pass http://backend/vr-dash-tile-player-master/aframe-based-tile-player/;#proxy_pass http://backend/;add_header Access-Control-Allow-Methods "GET,OPTIONS,POST,HEAD,PUT,DELETE";add_header Accept-Ranges "bytes";add_header nginx-cache "$upstream_cache_status";add_header Access-Control-Allow-Origin "*";add_header Access-Control-Allow-Headers "*";add_header Access-Control-Allow-Credentials "true";add_header Access-Control-Expose-Headers "Content-Lengrh,Content-Range,Date,Server,Transfer-Encoding,origin,range,x-goog-meta-foo1";}# 如果需要请求服务器中其他目录下的文件,再添加一个location {}即可。

设置好nginx.conf的缓存路径后,比如/usr/local/proxy_cache,接下来使用sudo chmod -R 777 /usr/local/proxy_cache增加权限。
当完成nginx.conf的配置后:
先进行检查

sudo ./nginx -t -c /usr/local/nginx/conf/nginx.conf

出现下面的信息表示没问题
在这里插入图片描述
最后:

sudo ./nginx -c /usr/local/nginx/conf/nginx.conf
sudo ./nginx -s reload

nginx的配置目前就告一段落。

4 播放器的调试

如果想基于nginx在视频播放器与服务器之间反向代理,仅仅配置nginx是不够的,还需要对视频播放器进行修改。
因为反向代理过程中,视频播放器实际上是向代理服务器发送请求,然后由反向代理服务器向内容服务器发送请求。但是视频播放器的文件中可能内置一些请求的地址,如果不修改这些地址,那么播放器还是会向内容服务器发送请求以求得内容。
比如支持播放器html文件的一个js文件中包含了一个对aframeVP907.json文件的请求地址,如果不修改那个链接,播放器就会绕过反向代理服务器之间向内容服务器
请求这个文件。下图中打码的地址就是内容服务器的地址。事实上,播放器不仅直接向内容服务器发送请求,还出现了报错——压根收不到json文件。
在这里插入图片描述
接下来需要在js文件中对地址进行修改。
事实上,播放器需要修改ip地址的地方还挺多,需要仔细寻找。
在这里插入图片描述
可以借助浏览器检查中的Network中上述Name文件选项,来寻找需要修改ip地址的文件。

注意

由于在nginx的配置文件nginx.conf中设置了内容缓存,因此即使修改视频播放器的文件,在播放器上进行操作也不会有变化。因此,如果播放器文件有所改变,需要先清除nginx上的缓存。

5 报错信息汇总

nginx反向代理可能会遇到各种各样的错误,下面的文章汇总了我所需要的一系列报错与解决办法,希望有帮助。
nginx反向代理报错合集

参考

[1] nginx缓存详解(二)

这篇关于基于nginx在视频播放器与服务器之间反向代理流程的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/377839

相关文章

Nginx 413修改上传文件大小限制的方法详解

《Nginx413修改上传文件大小限制的方法详解》在使用Nginx作为Web服务器时,有时会遇到客户端尝试上传大文件时返回​​413RequestEntityTooLarge​​... 目录1. 理解 ​​413 Request Entity Too Large​​ 错误2. 修改 Nginx 配置2.1

Web技术与Nginx网站环境部署教程

《Web技术与Nginx网站环境部署教程》:本文主要介绍Web技术与Nginx网站环境部署教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、Web基础1.域名系统DNS2.Hosts文件3.DNS4.域名注册二.网页与html1.网页概述2.HTML概述3.

NGINX 配置内网访问的实现步骤

《NGINX配置内网访问的实现步骤》本文主要介绍了NGINX配置内网访问的实现步骤,Nginx的geo模块限制域名访问权限,仅允许内网/办公室IP访问,具有一定的参考价值,感兴趣的可以了解一下... 目录需求1. geo 模块配置2. 访问控制判断3. 错误页面配置4. 一个完整的配置参考文档需求我们有一

使用Nginx配置文件服务器方式

《使用Nginx配置文件服务器方式》:本文主要介绍使用Nginx配置文件服务器方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1. 为什么选择 Nginx 作为文件服务器?2. 环境准备3. 配置 Nginx 文件服务器4. 将文件放入服务器目录5. 启动 N

Nginx路由匹配规则及优先级详解

《Nginx路由匹配规则及优先级详解》Nginx作为一个高性能的Web服务器和反向代理服务器,广泛用于负载均衡、请求转发等场景,在配置Nginx时,路由匹配规则是非常重要的概念,本文将详细介绍Ngin... 目录引言一、 Nginx的路由匹配规则概述二、 Nginx的路由匹配规则类型2.1 精确匹配(=)2

Nginx使用Keepalived部署web集群(高可用高性能负载均衡)实战案例

《Nginx使用Keepalived部署web集群(高可用高性能负载均衡)实战案例》本文介绍Nginx+Keepalived实现Web集群高可用负载均衡的部署与测试,涵盖架构设计、环境配置、健康检查、... 目录前言一、架构设计二、环境准备三、案例部署配置 前端 Keepalived配置 前端 Nginx

Nginx 访问 /root/下 403 Forbidden问题解决

《Nginx访问/root/下403Forbidden问题解决》在使用Nginx作为Web服务器时,可能会遇到403Forbidden错误,文中通过示例代码介绍的非常详细,对大家的学习或者工作... 目录解决 Nginx 访问 /root/test/1.html 403 Forbidden 问题问题复现Ng

Nginx部署React项目时重定向循环问题的解决方案

《Nginx部署React项目时重定向循环问题的解决方案》Nginx在处理React项目请求时出现重定向循环,通常是由于`try_files`配置错误或`root`路径配置不当导致的,本文给大家详细介... 目录问题原因1. try_files 配置错误2. root 路径错误解决方法1. 检查 try_f

Java对接Dify API接口的完整流程

《Java对接DifyAPI接口的完整流程》Dify是一款AI应用开发平台,提供多种自然语言处理能力,通过调用Dify开放API,开发者可以快速集成智能对话、文本生成等功能到自己的Java应用中,本... 目录Java对接Dify API接口完整指南一、Dify API简介二、准备工作三、基础对接实现1.

史上最全nginx详细参数配置

《史上最全nginx详细参数配置》Nginx是一个轻量级高性能的HTTP和反向代理服务器,同时也是一个通用代理服务器(TCP/UDP/IMAP/POP3/SMTP),最初由俄罗斯人IgorSyso... 目录基本命令默认配置搭建站点根据文件类型设置过期时间禁止文件缓存防盗链静态文件压缩指定定错误页面跨域问题