阿里云OSS的存储空间(Bucket)访问地址会随机变换,您可以通过在ECS实例上配置OSS的反向代理,实现通过固定IP地址访问OSS的存储空间。

背景信息

阿里云OSS通过Restful API方式对外提供服务。最终用户通过OSS默认域名或者绑定的自定义域名方式访问,但是在某些场景下,用户需要通过固定的IP地址访问OSS:
  • 某些企业由于安全机制,需要在出口防火墙配置策略,以限制内部员工和业务系统只能访问指定的公网IP,但是OSS的Bucket访问IP会随机变换,导致需要经常修改防火墙策略。
  • 金融云环境下,因金融云网络架构限制,金融云内网类型的Bucket只能在金融云内部访问,不支持在互联网上直接访问金融云内网类型Bucket。
针对以上问题,您可以通过在ECS实例上搭建反向代理的方式访问OSS。

操作步骤

  1. 创建一个ECS实例。
    本文以和Bucket相同地域的Windows Server 2019数据中心版64位中文版系统的ECS实例为例。

    如何创建ECS实例,请参见选购ECS实例

  2. 连接ECS实例。
    如何连接ECS实例,请参见 连接ECS实例
  3. 下载Nginx并解压。
    本文以Nginx-1.19.2版本为例。
  4. 修改配置文件nginx.conf
    重要
    1. 进入conf文件夹,使用记事本打开nginx.conf文件。
    2. 修改配置文件内容。
      worker_processes  1;
      events {
          worker_connections  1024;
      }
      
      http {
          include       mime.types;
          default_type  application/octet-stream;
      
          keepalive_timeout  65;
          server {
              listen       80;
              server_name  47.**.**.43;
      
              error_page   500 502 503 504  /50x.html;
              location = /50x.html {
                  root   html;
              }
      
             location / {
                  proxy_pass  http://bucketname.oss-cn-hangzhou-internal.aliyuncs.com;
                  #proxy_set_header Host $host;
              }
         }
      }
      目录 说明
      /usr/sbin/nginx 存放主程序
      /etc/nginx 存放配置文件
      /usr/share/nginx 存放静态文件
      /var/log/nginx 存放日志
  5. 返回Nginx主程序文件夹,双击nginx.exe启动Nginx。
  6. 开放ECS实例的TCP 80端口。
    Nginx默认使用80端口,您需在ECS的安全组配置中,允许用户访问TCP 80端口。

    如何配置,请参见添加安全组规则

  7. 测试使用ECS外网地址加文件访问路径访问OSS资源。
    如果访问的文件读写权限为私有,文件URL中还需要包含签名信息。详情请参见 在URL中包含签名

相关文档