如何安全访问oss资源?
一、前言
我们在公司项目或者个人项目中肯定会使用到oss来存储资源文件,oss的使用方便了我们在项目中存储和访问资源,但是无论是阿里云oss还是腾讯云oss都是需要按流量和访问量进行计费的,如果我们直接将oss的地址暴露在公网上,允许用户随意访问,可能会出现被恶意刷流量的情况,导致项目的费用变高,并且有可能被别人当作资源库进行使用(也就是我们常说的盗链)。
所以我们为了安全的使用oss资源,就必须将公网oss地址给隐藏起来,不让用户知晓原始的oss地址,只是在项目使用的时候通过代理去访问对应的资源,下面我就来简单介绍两种常见的代理访问方式:
二、使用nginx代理访问:
使用Nginx代理访问阿里云OSS(Object Storage Service)或腾讯云OSS,可以通过配置Nginx的location块来代理请求到OSS的HTTP/HTTPS端点。以下是一个参考的示例:
2.1安装和配置Nginx:
- 首先确保你的服务器或者本地上已经安装了Nginx服务:
可以使用下面的命令查看是否安装了nginx:
ps -ef |grep nginx
- 添加代理配置,在Nginx配置文件找到配置代理的server块,并在其中添加一个location块。添加以下内容:
server {
listen 80;
server_name your.domain.com;
location /oss/ {
# 设置OSS的访问URL
proxy_pass https://your-oss-endpoint.oss-cn-region.aliyuncs.com/;
# 如果OSS需要特定的HTTP头,可以在这里设置
proxy_set_header Host $host;
# 其他可能需要的代理设置...
# 转发原始请求头到OSS(可选)
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# 禁用缓存(可选)
proxy_no_cache 1;
proxy_cache_bypass 1;
}
}
注意:your-oss-endpoint.oss-cn-region.aliyuncs.com需要替换为自己的OSS端点URL。
- 重启Nginx: 保存并关闭配置文件后,重启Nginx让配置生效
- 测试访问:
通过访问Nginx服务器的URL(如http://your.domain.com/oss/1000.webp)来测试: