• 1
  • 2
  • 3
  • 4
  • 5
阿里云主机ECS 首 页  »  帮助中心  »  云服务器  »  阿里云主机ECS
ECS上搭建反向代理通过内网访问OSS服务的原理及操作
发布日期:2016-1-11 14:1:19

  在ECS上用Nginx做反向代理,通过内网访问OSS。

  原理说明:

  1.用户通过ECS公网ip,或者域名,访问ECS上的Nginx。

  2.Nginx收到用户的访问请求后,根据Nginx的代理设置,通过OSS的内网地址,访问OSS。正常访问到OSS的资源后,把数据返回给用户。

  配置中最重要的环节是Nginx反向代理设置。

  本教程以Centos7 Linux系统为例:

  1) 在ECS上安装Nginx

  yum install nginx

  2) 安装好Nginx后,修改配置文件。

  vim /etc/nginx/nginx.conf

  在server 配置段中,添加反向代理的设置。

  location / {

  rewrite /(.+)$ /$1 break;

  proxy_pass http://***.oss-cn-beijing-internal.aliyuncs.com;

  }

  

  配置说明:

  rewrite /(.+)$ /$1 break; 用rewrite进行url重写,使用户访问的url后缀,也传递到OSS上。

  proxy_pass http://***.oss-cn-beijing-internal.aliyuncs.com; 代理请求到这个OSS的内网地址,星号注释的是用户是bucket名。

  这个内网地址如何来得到呢?

  OSS有提供内网和外网访问地址【点此查看】

  从这里找到对应节点的内网地址,然后在内网地址前,加上对应的bucket名就行了。

  例如:Bucket名称+OSS内网地址

  示例中的OSS是北京地域,bucket名称是bj-1,

  OSS北京节点的内网地址是oss-cn-beijing-internal.aliyuncs.com,

  所以bucket bj-1对应的内网访问地址是bj-1.oss-cn-beijing-internal.aliyuncs.com

  3)配置好Nginx后,重启Nginx

  systemctl restart nginx.service

  4)在浏览器上,通过ECS的公网ip访问。

  访问地址和直接访问OSS类似,只是把url中OSS的域名,改成ECS公网ip或者ECS绑定的域名。

  例如正常访问OSS的地址是:http://***.oss-cn-beijing.aliyuncs.com/html/nginx.html

  通过Nginx代理访问是:http://ECS公网ip/html/nginx.html

  测试访问ECS,可正常访问到OSS上的文件。