美文网首页阿里云ECS阿里云服务器
阿里云ECS实现反向代理内网访问OSS资源

阿里云ECS实现反向代理内网访问OSS资源

作者: 吴佳轶 | 来源:发表于2019-03-26 22:57 被阅读10次

    1. 本机环境

    • Ubuntu 16.04 (64位)
    • Apache2 2.4.18

    2. 什么是对象存储 OSS

    阿里云对象存储服务(Object Storage Service,简称 OSS),是阿里云提供的海量、安全、低成本、高可靠的云存储服务。

    你可以在任何应用、任何时间、任何地点存储和访问任意类型的数据。

    其优点在于可靠性高,相对于 ECS 服务器的数据盘来说,费用较低,适合存储图片、视频等文件。

    费用对比:

    在 ECS 实例中额外挂载一块 500GB 数据盘需要花费 1785 元人民币。
    购买一年 OSS 对象存储,500GB 空间仅需要 486 元人民币。

    3. OSS 地理区域限制

    说明:

    • 同地域的 ECS 可以通过内网访问 OSS。
    • 跨账户的 ECS 和 OSS 可以内网互连。
    • 不同地域的 ECS 与 OSS 无法通过内网访问。

    例如:

    位于深圳的 ECS 与同处于深圳的 OSS,可以通过内网直接访问,不收取流量费。
    但深圳的 ECS 与北京的 OSS,只能通过外网访问,需要按量付费。

    我们在购买 OSS 资源包时需要注意机房的地理位置。

    4. 购买 OSS 资源包

    微信截图_20190319015619.png微信截图_20190319015619.png

    红框: 资源包类型选择 标准型存储包
    绿框: 地域选择你 ECS 所在地,我的是华南1区(深圳)

    选择你需要的容量,支付费用即可。

    5. 获取 OSS 内网地址

    在 OSS 控制台中创建一个 Bucket

    微信截图_20190319020559.png微信截图_20190319020559.png

    红框: 新建一个 Bucket
    绿框: 你的 Bucket 列表。

    微信截图_20190319020204.png微信截图_20190319020204.png

    Bucket 列表中找到刚刚创建的,你会看到下图所示的几个域名。
    ECS 的经典网络访问(内网) 最后面对应的便是我们的 Bucket 域名

    微信截图_20190319020409.png微信截图_20190319020409.png

    6. 上传测试文件

    微信截图_20190319022320.png微信截图_20190319022320.png

    可以上传一张图片,作为我们的测试文件。


    7. ECS 内网访问 OSS 原理

    ecs_oss.pngecs_oss.png

    8. 配置步骤

    8.1 启用 Apache2 模块

    需要启用以下模块:

    LoadModule proxy_module modules/mod_proxy.so
    LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
    LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
    LoadModule proxy_connect_module modules/mod_proxy_connect.so
    LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
    LoadModule proxy_http_module modules/mod_proxy_http.so
    

    启用方法:

    sudo a2enmod <model>   // 启用模块  
    sudo a2dismod <model>  // 禁用模块   
    

    示例:

    sudo a2enmod proxy
    sudo a2enmod proxy_ajp
    sudo a2enmod proxy_balancer
    ···
    

    8.2 Apache2 虚拟主机配置

    我要将 oss.wujiayi.vip 反向代理到 Bucket 域名

    Apache2 虚拟主机的搭建请参照我的另一篇教程:Linux环境下Apache2配置多个虚拟主机

    8.3 配置反向代理

    打开虚拟主机配置文件:

    vim /etc/apache2/sites-enabled/000-default.conf
    

    oss.wujiayi.vip配置中新增以下代码:

    ProxyRequests Off
    ProxyPass / http://xxxxx-xxxxx-cn-shenzhen-internal.aliyuncs.com/
    ProxyPassReverse / http://xxxxx-xxxxx-cn-shenzhen-internal.aliyuncs.com/
    
    SetEnv force-proxy-request-1.0 1  
    SetEnv proxy-nokeepalive 1 
    

    如下图:

    微信截图_20190319021739.png微信截图_20190319021739.png

    注意: Bucket 域名后面一定一定一定要加上 /,否则无法访问 OSS 资源。

    8.4 重启服务器

    /etc/init.d/apache2 restart
    

    9. 验证

    输入域名:oss.wujiayi.vip/1.jpg

    微信截图_20190319022549.png微信截图_20190319022549.png

    10. 参考链接


    欢迎关注我的微信公众号:吴佳轶同学


    相关文章

      网友评论

        本文标题:阿里云ECS实现反向代理内网访问OSS资源

        本文链接:https://www.haomeiwen.com/subject/skmovqtx.html