You need to enable JavaScript to run this app.
对象存储

对象存储

复制全文
最佳实践
使用 ECS 实例反向代理 TOS
复制全文
使用 ECS 实例反向代理 TOS

对象存储 TOS 通常通过域名进行访问,其服务地址动态变化,不提供固定的 IP 地址。某些行业可能存在安全合规要求,需要通过固定 IP 访问对象存储 TOS。为满足此类需求,您可以在 ECS 实例配置 Nginx 反向代理服务器,通过访问 ECS 实例公网 IP 的 80 端口来访问 TOS 存储桶中的文件,实现通过固定 IP 访问对象存储 TOS 内的资源。本文介绍使用 ECS 实例反向代理 TOS 的方案优势、操作步骤。

方案优势

使用 ECS 实例反向代理 TOS 时,ECS 不仅为对象存储提供一个固定 IP 访问入口,同时其强大安全能力,增强了对象存储 TOS 的安全性,说明如下:

  • 固定 IP 访问:通过固定 IP 访问对象存储 TOS 内的资源,满足金融、医疗等行业安全合规要求。
  • 安全加固:ECS 实例可以开启 WAF、防火墙等功能,增强对象存储的访问安全。
  • 日志追踪:ECS 作为统一的访问入口,记录了 TOS 所有的访问日志,便于追踪和审计。

Image

前提条件

已创建 ECS 实例,具体操作,请参见通过向导购买实例

说明

本文以 CentOS Stream release 9 64 位系统的 ECS 实例为例,介绍如何使用 ECS 实例反向代理 TOS。

步骤一:开放 80 端口

Nginx 默认使用 80 端口进行通信,您需要在 ECS 实例的安全组中开放 80 端口,允许用户访问 TCP 80 端口。

  1. 登录云服务器控制台

  2. 在左侧导航栏,选择实例与镜像 > 实例

  3. 实例页面,单击目标实例的名称。

  4. 在实例详情页面,单击安全组页签。

  5. 单击已关联安全组区域下的配置规则

  6. 入向规则页签下,单击添加规则

  7. 添加入方向规则对话框,配置如下参数。

    参数

    说明

    优先级

    安全组规则的优先级。

    策略

    设置为允许

    协议类型

    设置为 TCP

    端口范围

    设置为 80 端口。

    说明

    如果您需要使用 HTTPS 协议访问 ECS 实例,则您需要设置端口范围为 443。

    源地址

    设置允许访问的网络地址段,用于控制哪些 IP 地址可以通过 80 端口访问 ECS 实例。

  8. 完成配置后,单击确定

步骤二:获取公网 IP 地址

  1. 登录云服务器控制台
  2. 在左侧导航栏,选择实例与镜像 > 实例
  3. 实例页面,单击目标实例的名称。
  4. 概览页签下右侧网卡区域,获取公网 IP 地址。

步骤三:配置 Nginx

  1. 登录 ECS 实例

  2. 执行以下命令,安装 Nginx。

    sudo yum install -y nginx
    
  3. 执行以下命令,打开 Nginx 的配置文件 nginx.conf。

    sudo vi /etc/nginx/nginx.conf
    
  4. 修改配置文件 nginx.conf 的 HTTP 模块,完成配置后,保存并退出。

    说明

    • 如果您使用 HTTPS 协议访问 ECS 实例,则您需要配置 nginx.conf 文件的 HTTPS 模块,具体操作,请参见安装证书到 Nginx 服务器。
    • 配置 Nginx 时,系统盘会产生 Nginx 访问日志和错误日志,建议您定期清理磁盘空间,避免因日志文件占用过多磁盘空间,导致云服务器性能下降。
    • 本文配置方式只能代理访问一个存储桶。
    error_log /var/log/nginx/error.log;
    
    events {
        worker_connections 1024;  # 当前设置的 1024 值相对保守,在生产环境中请根据业务需求灵活调整该参数。
    }
    
    http {
        log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                          '$status $body_bytes_sent "$http_referer" '
                          '"$http_user_agent" "$http_x_forwarded_for"';
       
    
        access_log  /var/log/nginx/access.log  main;
    
    
        server {
            listen       80;
            listen       [::]:80;
             
            location / {
            proxy_pass http://bucketname.tos-cn-guangzhou.volces.com;
            proxy_set_header Host $http_host;
            proxy_http_version 1.1;
            
            proxy_set_header Connection "";
            proxy_buffering off;
            proxy_request_buffering off;
            }
        }
    }
    

    根据实际业务情况,修改 nginx.conf 文件中以下参数:

    参数

    说明

    worker_connections

    最大并发连接数,您需要根据实际业务需求调整该值。

    proxy_pass

    被代理的服务器地址,此处需要设置为 TOS 存储桶的访问域名。说明如下:

    • 当 ECS 实例与存储桶位于同一地域时,此处需要填写为目标存储桶的内网访问域名,例如 http://bucketname.tos-cn-guangzhou.ivolces.com
    • 当 ECS 实例与存储桶位于不同地域时,此处需要填写为目标存储桶的外网访问域名,例如 http://bucketname.tos-cn-guangzhou.volces.com

    说明

    您可以在存储桶概览页面获取存储桶域名,具体操作,请参见存储桶概览

  5. 执行以下命令,测试 Nginx 配置文件 nginx.conf 的状态。

    nginx -t
    

    返回以下内容,说明 nginx.conf 文件状态正常。

    nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
    nginx: configuration file /etc/nginx/nginx.conf test is successful
    
  6. 执行以下命令,重启 Nginx 服务器,使配置生效。

    systemctl restart nginx
    

步骤四:配置 DNS 解析

本文以 Linux 系统为例,介绍如何在客户端配置 DNS 解析。
执行以下命令,打开 hosts 文件。

sudo vi /etc/hosts

在文件末尾添加以下内容,将 TOS 域名解析到 ECS 实例的公网 IP 地址。

<公网 IP 地址> <存储桶访问域名>

示例如下:

118.125.1**.**  bucketname.tos-cn-guangzhou.volces.com

结果验证

  1. 安装 tosutil ,具体操作,请参见下载与安装

  2. 执行以下命令,为 tosutil 添加可运行全权限。

    chmod +x tosutil
    
  3. 执行以下命令,使用 config命令初始化配置 tosutil。

    说明

    如果您使用 HTTPS 协议访问 ECS 实例,初始化配置 tosutil 时,需要将 -e 参数设置为 https://<endpoint>

    # -i 参数指定账号/子账号的 access key
    # -k 参数指定账号/子账号的 secret key
    # -e 参数指定访问的 endpoint
    # -re 参数指定访问的 region
    ./tosutil config -i <access key> -k <secret key> -e http://<endpoint> -re <region>
    

    示例如下:

    ./tosutil config -i AKLTN2FmOGM4Z********* -k WXpkbVlXTm1OVGs1T0RabE********  -e http://tos-cn-guangzhou.volces.com -re cn-guangzhou
    
  4. 执行以下命令,上传文件到存储桶。

    ./tosutil cp  span.log tos://bucketname/span.log
    
  5. 在 ECS 实例,执行以下命令,查看 Nginx 访问日志。

    tail -f /var/log/nginx/access.log
    

    在访问日志中可以看到上传文件的请求转发到 Nginx 上,说明使用 ECS 实例反向代理 TOS 成功。

最近更新时间:2025.05.30 17:51:01
这个页面对您有帮助吗?
有用
有用
无用
无用