概述
用nginx来做点播服务器(流媒体服务器),配置了https有一半请求ts和key的访问都报错302和499。
nginx.conf配置参考地址:nginx官网:ngx_http_auth_request_module
解决方案:
添加proxy_set_header Host $host
nginx官网的配置也是没有 proxy_set_header Host $host
,解决问题思路如果不正确就很难了。
解决过程
access.log
发现正常请求的 $remote_addr
字段都是 ::1,而302报错请求的$remote_addr
字段变成了127.0.0.1。
问题终结:两次一样的request,源ip竟然不一致,说明代理的源ip配置不正确
解决方案:配置nginx.conf添加 proxy_set_header Host $host
配置完成后,访问正常,而正常的日志
120.230.55.xx - - [2021-12-30T12:24:03+08:00] "GET /api/drm/auth HTTP/1.0" 200 13 0.056 0.056 "https://xxxx.com/video/1468035504310652929?p=1638840457787090545" "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36" "-"