188
云计算
负载均衡
产品简介
产品价格
快速入门
用户指南
实践操作
常见问题
购买指南
云服务器
产品简介
计费规则
购买指导
控制台使用指南
常见问题
云数据库
产品简介
计费规则
购买指导
快速入门
连接实例
控制台使用指南
对象存储
产品简介
控制台使用指南
程序员百科
Python
天翼云对象存储(经典版)II型使用教程-通过Nginx反向代理访问OBS

产品推荐:

1、安全稳定的云服务器租用,2核/2G/5M仅37元,点击抢购>>>

2、高防物理服务器20核/16G/50M/500G防御仅350元,点击抢购>>>

3、百度智能建站(五合一网站)仅880元/年,点击抢购>>> 模板建站(PC+手机站)仅480元/年,点击抢购>>>

4、阿里云服务器2核2G3M仅99元/年、2核4G5M仅199元/年,新老同享,点击抢购>>> 

5、腾讯云服务器2核2G4M仅99元/年、新老同享,点击抢购>>>   



点击这里注册天翼云特邀VIP帐号,立即体验天翼云对象存储>>>


天翼云对象存储(经典版)II型使用教程-通过Nginx反向代理访问OBS


背景

一般情况下,用户会通过OBS提供的桶访问域名(例如https://bucketname.obs.cn-jssz1.ctyun.cn)的方式访问OBS。

但在某些场景下,用户需要通过固定的IP地址访问OBS,例如:某些企业出于安全考虑,对于可访问的外部地址需要设置黑白名单,而这个时候对于OBS的访问则需要一个固定的IP地址。同样出于安全考虑,天翼云OBS桶访问域名通过DNS解析的IP地址是会发生变化的,所以用户无法获取某个桶长期有效的固定IP地址。

此时,可以通过在ECS上搭建Nginx反向代理服务器,来实现通过固定IP地址访问OBS。

原理介绍

本实践将Nginx部署在ECS上,搭建Nginx反向代理服务器。用户对代理无感知,只需要将请求发送到反向代理服务器,然后由反向代理服务器向OBS获取数据,再返回给用户。反向代理服务器和OBS对外看做一个整体,仅暴露代理服务器的IP地址,隐藏了OBS真实的域名或IP地址。

图-通过Nginx反向代理访问OBS原理

前置条件

  • 已明确OBS桶所在区域和桶的访问域名,如苏州区域的桶:nginx-obs.obs.cn-jssz1.ctyun.cn。查看方法

  • 已在同区域购买Linux操作系统的ECS,本文以CentOS系统为例。

  • ECS已绑定EIP,EIP用于从公网下载必要的Nginx安装包。


操作步骤

在ECS上安装Nginx

a.登录用于搭建Nginx反向代理服务器的ECS。

b.使用wget命令,下载对应当前操作系统版本的Nginx安装包。此处以CentOS 7.6版本的操作系统为例。

wget http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

c.执行以下命令,建立Nginx的yum仓库。此处以CentOS 7.6版本的操作系统为例。

rpm -ivh nginx-release-centos-7-0.el7.ngx.noarch.rpm

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

yum -y install nginx

e.执行以下命令,启动Nginx并设置开机启动。

systemctl start nginx

systemctl enable nginx

f.在任意终端使用浏览器访问“http://ECS弹性公网IP地址”,显示如下图所示,说明Nginx安装成功。

图-Nginx安装成功

修改Nginx配置文件,反向代理OBS桶

a.执行以下命令,打开“default.conf”配置文件。

vim /etc/nginx/conf.d/default.conf

b.按“i”键进入编辑模式,修改“default.conf”配置文件。

server {

      listen       8089; #天翼云针对公网IP默认封闭80端口,需要备案后才能使用,建议使用其他端口如:8089,或者使用内网80端口访问。

      server_name  **.**.**.**;  #此处填写ECS弹性公网IP地址 

      location / {

           proxy_pass  https://nginx-obs.obs.cn-jssz1.ctyun.cn;  #此处填写OBS桶访问域名,以http://或https://开头

           index  index.html index.htm ;

        }

}

表-配置文件参数说明

参数

说明

server_name

提供反向代理服务的IP地址,即需要暴露给终端用户访问的固定IP地址。

此处填写搭建Nginx反向代理服务的ECS弹性公网IP地址,即当前登录的ECS弹性公网IP地址。

proxy_pass

被代理服务器的地址。

此处填写前提条件获取的OBS桶的访问域名,注意需要以http://或https://开头,例如:

https://nginx-obs.obs.cn-jssz1.ctyun.cn

c.按“Esc”,输入“:wq”保存并退出。

d.执行以下命令,测试Nginx配置文件状态。

nginx -t

e.执行以下命令,重启Nginx服务使配置生效。

systemctl stop nginx

systemctl start nginx


配置OBS桶策略,允许Nginx代理服务器的IP地址访问OBS(可选)

如果您的OBS桶为公共读,或者访问私有桶内对象时在URL中携带签名,则可跳过此步骤。

如果您的OBS桶为私有桶,且不希望使用携带签名的URL访问桶内资源,则建议配置以下桶策略或者桶ACLs策略:仅允许Nginx代理服务器的IP地址访问OBS桶。

桶对象ACLs策略如下:

赋予匿名用户读取权限

桶策略如下:

a.在OBS管理控制台左侧导航栏选择“对象存储”。

b.在桶列表单击待操作的桶,进入“概览”页面。

c.在左侧导航栏,单击“访问权限控制 > 桶策略”。

d.单击“创建桶策略”。

e.在桶策略模式,选择“自定义模式”。

f.配置如下参数。

表-桶策略参数配置

参数

说明

策略配置方式

可视化视图

策略名称

自定义

策略内容

效果

允许

被授权用户

  • 授权用户:匿名用户

  • 用户策略:包含以上用户

资源

  • 资源范围:同时选择当前桶和桶内对象

  • 资源策略:包含以上资源

动作

  • 选择动作:Get*和List*

  • 操作策略:包含以上动作

条件

  • 条件运算符:IpAddress

  • 键:SourceIp

  • 值:

  • 如果ECS使用公网DNS,取值为:

  • ECS的弹性公网IP地址

  • 如果ECS使用天翼云内网DNS,取值为:100.64.0.0/10,214.0.0.0/7,ECS的私有IP地址

说明:

取值需要同时配置三个IP地址(IP地址段),之间用英文逗号(,)隔开。

其中,100网段和214网段为ECS内网访问OBS的网

g.单击右下角的“配置确认”。

h.单击右下角的“创建”,完成桶策略创建。 

验证反向代理配置

在任意终端使用ECS弹性公网IP地址+对象名访问OBS资源,如果能正常访问,则说明配置成功。

例如访问http://ECS弹性公网IP地址:端口/image.jpeg,能够正常下载即可。

图-使用固定IP地址访问OBS资源



这条帮助是否解决了您的问题? 已解决 未解决

提交成功!非常感谢您的反馈,我们会继续努力做到更好! 很抱歉未能解决您的疑问。我们已收到您的反馈意见,同时会及时作出反馈处理!