nginx阿里云反向代理oss内网途径免流出流量费

nginx阿里云反向代理oss内网途径免流出流量费

非全部原创,部分转载自:Nginx代理阿里云OSS免流,原作者@小红

创建阿里云OSS和服务器的地域一致

阿里云(ECS/轻量)服务器和阿里云OSS地域必须一致。
阿里云的 OSS 收费项分的很细,存储是存储的,流量是流量的。存储费按使用的容量来计算,用多少收多少,这个很直观,也比较好掌控。流量费就不好说了,图片一不小心被盗链,或是其他原因流量突然暴增,会带来一些预料之外的开支。

好在 OSS 提供了一个比较良心的选择:内网流量免费。通过这个规则,我只需要让访问 OSS 的流量都走内网,就不用担心流量方面的开支了。那么问题来了:如何打通 OSS 的内网访问流量?

两个前提:

  • 阿里云服务器 1 个。
  • 同区域的 OSS 1 个。

注意我加粗了的「同区域」。举个例子,如果服务器在杭州,OSS 买到了深圳,按照 OSS 的收费规则,这是跨区域,存在流量费用。如果非要这么安排,但又想减省一点流量费,那就只有在 OSS 所在区域再买一台服务器,然后再通过公网流量连接另一台服务器。这还是会有点得不偿失,因为阿里云的服务器也不便宜。

imgimg

创建OSS图片处理样式 webp

imgimg

配置Ngxin

location /file/ {
    #防盗链
    valid_referers none blocked drcodes.cn;
    if ($invalid_referer) {
      return 404;
    }
     #匹配图片处理样式 webp
     rewrite ^/file/(.*\.(JPEG|jpeg|JPG|jpg|PNG|png|.gif|.GIF))$ /$1/webp break;
     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_set_header X-NginX-Proxy true;
     # host必须为阿里云OSS分配的内网域名 可在控制台查看
     proxy_set_header Host oss-dhjddcn.oss-cn-hangzhou-internal.aliyuncs.com;
     #阿里云OSS的endpoint
     proxy_pass http://oss-cn-hangzhou-internal.aliyuncs.com/;
     proxy_redirect off;

 # 当后端服务器返回错误时,使用自定义错误页面
    proxy_intercept_errors on; 
    # 设置自定义错误页面

    error_page 403 404 /custom_error.html; 
     # Socket.IO Support
     proxy_http_version 1.1;
     proxy_set_header Upgrade $http_upgrade;
     proxy_set_header Connection "upgrade";
}

配置好重启 ./nginx -s reload

域名/file/文件名 开始既可以访问对应oss的文件,建议服务器带宽足够的情况下使用,也可以给你域名加cdn

© 版权声明
THE END
喜欢就支持一下吧
点赞7 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容