我想做一个安全的URL与Nginx安全链接模型和重写。因此,安全链接类似于:http://example.com/media/ZYSwFWTSM8DHh8CNupbbzw/1593525536/videos/tmp/793.mp4
并将其重写为:http://example.com/media/videos/tmp/793.mp4?md5=ZYSwFWTSM8DHh8CNupbbzw&secure=1593525536
最后,打开这个视频链接:http://example.com/media/videos/tmp/793.mp4
这是我的Nginx服务器配置:
location /media {
rewrite /videos/([a-zA-Z0-9_\-]*)/([0-9]*)/tmp/(.*)\.mp4$ /media/videos/tmp/$3.mp4?md5=$1&expires=$2;
}
location /media/videos {
secure_link $arg_md5,$arg_expires;
secure_link_md5 "$secure_link_expires$uri SecretWord";
if ($secure_link = "") { return 403; }
if ($secure_link = "0") { return 410; }
}问题是,当我试图打开这些安全链接时,我得到了"403禁止“:http://example.com/media/ZYSwFWTSM8DHh8CNupbbzw/1593525536/videos/tmp/793.mp4
虽然这些链接运行得很好:http://example.com/media/videos/tmp/793.mp4?md5=ZYSwFWTSM8DHh8CNupbbzw&secure=1593525536
同样,当我移除secure_link模型配置并尝试以下链接时:http://example.com/media/ZYSwFWTSM8DHh8CNupbbzw/1593525536/videos/tmp/793.mp4
录像还能用。
所以我真的不知道问题出在哪里,因为重写配置或secure_link_module本身就在工作,但它们没有一起工作。
发布于 2022-07-19 12:13:02
尝尝这个
location /securemedia {
rewrite /securemedia/([a-zA-Z0-9_\-]*)/([0-9]*)/(.*)$ /media/videos/$3?md5=$1&expires=$2;
}
location /media/videos {
secure_link $arg_md5,$arg_expires;
secure_link_md5 "$secure_link_expires$uri SecretWord";
if ($secure_link = "") { return 403; }
if ($secure_link = "0") { return 410; }
}示例url http://example.com/securemedia/ZYSwFWTSM8DHh8CNupbbzw/1593525536/videos/tmp/793.mp4
https://serverfault.com/questions/1023477
复制相似问题