在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上的文件。 (责任编辑:IT) |