全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别会员请立即修改密码
查看: 1144|回复: 5

[疑问] Nginx负载均衡访问各大厂图床问题,配置大佬来给点意见

[复制链接]
发表于 2022-1-6 09:36:52 | 显示全部楼层 |阅读模式
通过大佬的图床接口将同一个图片上传到各大厂oss上会得到很多图片地址,比如:
https://s.pc.qq.com/tousu/img/20210329/3026474_1616988181.jpg
https://img10.360buyimg.com/ddimg/jfs/t1/163550/18/15288/643/60614892Ef98777b2/8aaeaa2c6358f84f.png
https://590233ee4fbb3.cdn.sohucs.com/auto/1-auto5ee3649f01014209924829f790053f57
https://ps.ssl.qhmsg.com/t01754f8b1f1ec498be.jpg

由于大厂oss上图片可能随时会失效,我是想通过一个vps上的nginx负载均衡实现类似短网址的302跳转,
比如通过访问www.abc.com/img/1.jpg时自动302到上面第一个地址,如果第一个被清理了返回404时就跳转到第二个地址,
现在不知道如何在nginx中检测即将跳转到的地址是不是404,尝试了try_files配置没成功。

如果只跳转到某一个大厂地址上没问题,直接return302就行,但如果图片被清理了就失效了。
    location /img/1.jpg {
        return 302 https://s.pc.qq.com/tousu/img/20210329/3026474_1616988181.jpg;
    }
我是想在上面基础上把各大厂图床做一个fail-over ,只要有一个没清理就可极速访问(可在自己vps上再放一份图片做兜底),且图片还是固定链接。
发表于 2022-1-6 09:39:39 | 显示全部楼层
这需求用纯nginx做。。

楼主你要不考虑下别的方法?
发表于 2022-1-6 09:51:20 | 显示全部楼层
我的思路是,图片ID 对应 10个图床地址,然后加1个标记符。
难道不是用程序在后台把图床地址每天轮询一遍,如果失效,就标记1,没有失效就是0。
然后sql查询的时候,取1条=0的即可。
 楼主| 发表于 2022-1-6 11:15:28 | 显示全部楼层
feixiang 发表于 2022-1-6 09:51
我的思路是,图片ID 对应 10个图床地址,然后加1个标记符。
难道不是用程序在后台把图床地址每天轮询一遍, ...

配数据库后台做肯定没问题,相对麻烦一下,主要是想偷懒看看nginx简单配置一下是否可行
 楼主| 发表于 2022-1-6 11:16:41 | 显示全部楼层
flyqie 发表于 2022-1-6 09:39
这需求用纯nginx做。。

楼主你要不考虑下别的方法?

主要是想偷懒看看nginx简单配置一下是否可行

下面3楼那样周期监测再标记就行,不过如果nginx能实现还是想偷懒
发表于 2022-1-6 11:17:40 | 显示全部楼层
feixiang 发表于 2022-1-6 09:51
我的思路是,图片ID 对应 10个图床地址,然后加1个标记符。
难道不是用程序在后台把图床地址每天轮询一遍, ...

聚合图床 就是用的这个方法

只用nginx实现 那就手撸lua吧
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2024-12-26 11:42 , Processed in 0.063392 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表