论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
IT评测·应用市场-qidao123.com
»
论坛
›
主机系统
›
linux
›
搭建图片缓存服务器,解决图片访问403 Forbidden问题 ...
搭建图片缓存服务器,解决图片访问403 Forbidden问题
火影
论坛元老
|
2024-9-27 14:24:52
|
显示全部楼层
|
阅读模式
楼主
主题
1013
|
帖子
1013
|
积分
3039
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
在今世Web开辟中,图片是网站和应用的紧张组成部分。然而,偶然我们在访问某些图片时会遇到403 Forbidden错误,尤其是自己的应用访问互联网上的三方的图片时,这通常是由于别人的服务器设置了访问限定。本文将先容怎样通过搭建一个图片缓存服务器来解决这一问题。
什么是403 Forbidden错误?
403 Forbidden错误表现服务器理解请求,但拒绝授权。这通常是由于请求的资源受到访问控制列表(ACL)或其他权限设置的限定。
比方当三方应用访问微博图片,会出现
403 Forbidden
的缘故原由,是由于微博开启了“
图片反盗链
”。
微博反盗链的原理,就是在
浏览器请求头
(
HTTP Header
)里添加
Referer
信息,然后判定“
图片来源
”。如果是自家网站,那就发出
200 Success
,而如果是别人的,那就发出
403 Forbidden
。
为什么须要图片缓存服务器?
解决访问限定
:通过缓存服务器,我们可以绕过原始服务器的访问限定,从而正常访问图片。
提高访问速度
:缓存服务器可以减少对原始服务器的请求,加速图片加载速度。
降低服务器负载
:通过缓存,可以减少原始服务器的负载,提高其稳固性。
配置Nginx图片缓存服务器
可以利用Nginx搭建一个图片缓存服务器来解决三方应用访问豆瓣图片时遇到的403 Forbidden错误。以下是详细的步调和配置示例:
步调一:安装Nginx
起首,须要在你的服务器上安装Nginx。如果你利用的是基于Debian的系统(如Ubuntu),可以利用以下下令安装:
sudo apt update
sudo apt install nginx
复制代码
步调二:配置Nginx作为缓存服务器
接下来,你须要配置Nginx作为图片缓存服务器。编辑Nginx的主配置文件(通常位于/etc/nginx/nginx.conf),添加缓存相关的配置:
http {
# 设置缓存路径
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m max_size=1g inactive=60m use_temp_path=off;
server {
listen 80;
server_name your_domain.com;
location / {
proxy_pass http://img3.doubanio.com; # 豆瓣图片服务器的地址
proxy_cache my_cache;
proxy_cache_valid 200 302 10m;
proxy_cache_valid 404 1m;
add_header X-Proxy-Cache $upstream_cache_status;
proxy_set_header Host img3.doubanio.com; # 设置请求头中的Host字段
proxy_set_header User-Agent "Mozilla/5.0 (compatible; Nginx)"; # 设置User-Agent
}
}
}
复制代码
步调三:启动Nginx
保存配置文件后,启动或重启Nginx以应用新的配置:
sudo systemctl restart nginx
复制代码
步调四:测试缓存服务器
现在,你可以通过你的域名访问豆瓣的图片。比方,如果你配置的域名是your_domain.com,你可以通过以下URL访问豆瓣的图片:
http://your_domain.com/path/to/image.jpg
复制代码
更简单的方法
在浏览器中输入url可以正常访问,但是项目中无法访问,并返回403 Forbidden。一般是由于服务器设置了图片防盗链的缘故原由。 这里我接纳了yatessss前辈在vue完成知乎日报web版的解决方案,利用Images.weserv.nl举行缓存图片或者是https://wsrv.nl/举行图片缓存,并在须要利用图片url的地方举行相应的替换。
比方把之前的图片url换成以下这种方式:
https://wsrv.nl/?url=https://picx.zhimg.com/v2-a89ea6ce6cb9fb683dd2d21d435aed36.jpg
复制代码
防盗链的原理:
在HTTP协议中,有一个表头字段叫referer,接纳URL的格式来表现从哪儿链接到当前的网页或文件。换句话说,通过referer,网站可以检测目标网页访问的来源网页。如果是资源文件,则可以跟踪到显示它的网页地点。有了referer跟踪来源,就可以通过技术手段来举行处理惩罚,一旦检测到来源不是本站即举行阻止或者返回指定的页面。
还有一种方法就是可以通过伪造
Referer,
利用扩展
Header Editor
,然后,将图片的
Referer
设置为三方域名。
WordPress:
https://i0.wp.com/图片地点(图片地点要掉 https://)
Weserv.nl:
https://images.weserv.nl/?url=图片地点
百度 1:
https://image.baidu.com/search/down?url=图片地点
百度 2:
https://gimg2.baidu.com/image_search/&app=2020&src=图片地点(图片地点要去掉 https://)
注:百度的服务二选一。
前面两个网站的服务器在国外,延迟都在
160ms
以上,结果不尽人意,而百度的只有
10ms
,速度相称的快。
其他资源
2023 年微博图床 403 全失效,一个方法秒解决! - 少数派
https://www.cnblogs.com/UncleZhao/p/13813596.html
推荐一个高效能的图片处理惩罚利器:weserv/images-CSDN博客
wsrv.nl
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
火影
论坛元老
这个人很懒什么都没写!
楼主热帖
最全Windows98原版系统镜像下载(特点 ...
如何配置 SLO
Linux 基本指令
SAP各模块优缺点和发展简析
Spring(SpringBoot)--解决拦截器中注入 ...
Spring Security登录表单配置(3) ...
Redis 原理 - String
Kubernetes(k8s)CNI(flannel)网络 ...
微信小程序+web数据库的开发实践 ...
用python反弹shell
标签云
AI
运维
CIO
存储
服务器
浏览过的版块
Java
物联网
网络安全
备份
.Net
人工智能
Mysql
快速回复
返回顶部
返回列表