首页 > 技术文章 > 阿里云OSS通过服务器ESC内网流量访问文件(使用免费带宽,不使用收费流量

zhangzhiping35 2022-01-12 13:50 原文

对象存储OSS服务的基础计费项包括:存储容量,流量,请求次数。此外,OSS还提供存储数据处理服务(如图片处理服务等),会根据您的使用情况单独计量计费,不使用不计费。

总之,就是上传文件的流量不收费,外网下载需要收流量费,内网下载免流量费

这种其实很危险,就是可能有人会黑你,重复大量下载你的文件,导致高额流量费用

好处是使用oss上传下载文件速度都很快

而一般买oss的都会买阿里云服务器ESC,而服务器是可以选择固定带宽的,esc中访问oss是可以走内网的,而内网访问oss是免费的,那么让esc去访问oss并把文件映射出来就可以免流量下载oss文件了。

这么做的缺点是太占用带宽,一般小网站的带宽并不大,所以如果是下载视频类的文件会很卡,影响用户体验,总之看预算来吧,后期可以使用cdn加速优化一下

下面是操作步骤:

一、创建BUCKET

注意创建的bucket区域必须和阿里云服务器的区域相同,只有相同的区域内网才能打通

二、域名解析增加OSS的三级域名

主机记录可以随便起,我因为好辨认起了oss。

这个域名只是为了方便外网访问时nginx转发时使用的,所以不需要将域名绑定oss

所以此时这个域名啥用没用,绑定了nignx转发才能用域名访问文件

三、NGINX配置转发内网

 

打开bucket 在 概览中可以看到,第一个是外网访问的节点,第二是是内网访问的,记下第二个,在下面配置中要用到

如果是用https:

server {
    listen 443 ssl;
  	server_name oss.xxx.com;  #你添加记录的域名
  	ssl_certificate cert/oss.xxx.com.pem;   #一些证书
  	ssl_certificate_key cert/oss.xxx.com.key;
  	 ssl_session_timeout 5m;
     ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; #使用此加密套件。
     ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #使用该协议进行配置。
     ssl_prefer_server_ciphers on;
     location / {
           proxy_pass https://xxx.oss-cn-zhangjiakou-internal.aliyuncs.com; #转发的oss内网地址
      }
  	access_log /www/wwwlogs/access.log;
  }
 
 
server {
        listen 80;  #监听80端口
        server_name  www.xxx.com  oss.xxx.com;    #监听的域名 多个域名空格隔开
        rewrite ^(.*)$ https://$host$1 permanent;      
 }

  如果是http,随便写写就行了:

server {
    listen 80;
      server_name oss.xxx.com;  #你添加记录的域名
     location / {
           proxy_pass https://xxx.oss-cn-zhangjiakou-internal.aliyuncs.com; #转发的oss内网地址
      }
      access_log /www/wwwlogs/access.log;
  }

以前访问文件用的是外网point,如:

https://xxx.oss-cn-zhangjiakou.aliyuncs.com/files/xxx.jpg

现在变成使用你自己的域名就可以:

https://oss.xxx.com/files/xxx.jpg

nginx接收到这个域名后会自动转发内网请求文件并返回,走了内网流量

 

推荐阅读