本人小白,纯粹的给自己记录一下哈,大佬勿喷!
规定一下:资源站的域名 称为目标域名;本地做反向代理的域名 称为反代域名。好分辨
在最近一次本地测试中,因为资源站设定原因,所以需要自行反代网站才能正常使用,那么就只有配置nginx反向代理目标域名,于是就简单搞了下,这里目标域名开启了https,这里就顺手为反代域名获取ssl证书,接下来就是目前过程中遇到的连续问题了。
1.跳转
此时这样的代理无法访问,会一直请求到报错524,遂修改代理配置的目标域名协议为http,这里就出现了第一个问题:
访问反代域名会自动跳转目标域名。
查看了F12之后,发现目标域名强制转发https,所以代理http行不通,还是要固定为https。
2.upstream timed out
代理配置修改目标为https之后,就是长时间无响应,然后报错524,经过查看nginx的错误日志,如下:
[error] 1465#1465: *11070 upstream timed out (110: Connection timed out) while connecting to upstream, client: 192.x.x.x, server: 反代域名, request: "GET /xxx/xxx.m3u8 HTTP/1.1", upstream: "https://[2611:47c0:21::a3sd:2a02]:443/xxx/xxx.m3u8", host: "反代域名"
查看到是强制将目标域名解析为ipv6…
所以就禁止解析为ipv6,然后设置个地址变量,转发出去。nginx配置文件内添加如下:
server{
...
resolver 114.114.114.114 valid=5 ipv6=off;
...
location ~ [^/]\.php(/|$) {
...
set $backend "目标域名";
proxy_pass http://$backend/;
...
}
}
3.SSL证书错误
搞定之后查看日志发现又遇到了SSL证书错误
1553#1553: *11114 SSL_do_handshake() failed (SSL: error:14094410:SSL routines:ssl3_read_bytes:sslv3 alert handshake failure:SSL alert number 40) while SSL handshaking to upstream, client: 162.xx.xx.xx, server: 反代域名, request: "GET /xxx/xxx.m3u8 HTTP/1.1", upstream: "https://xxx/xxx.m3u8", host: "反代域名"
于是nginx配置信息添加:
server{
...
proxy_ssl_server_name on;
proxy_ssl_session_reuse off;
...
}
开启SIN,然后关闭缩写握手
4.TS切片的网址403保存
配置保存重载之后,此刻访问反代域名及对应的m3u8资源已经不会跳转了,点击连接会直接弹出提示下载。文章来源:https://www.toymoban.com/news/detail-829480.html
本来以为可以稳稳的直接浏览,但是,tmd,加载m3u8连接之后,ts切片是另外一个cdn连接,也有限制,目前播放直接控制台打印提示另外的跨域报错。。。
有空再研究下,或者如果有有缘进来的大佬留留言也可以,感激~~文章来源地址https://www.toymoban.com/news/detail-829480.html
到了这里,关于记一次nginx反代m3u8资源站出现的问题(upstream和ssl等)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!