前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >记一次混合云API暴露的反思

记一次混合云API暴露的反思

原创
作者头像
迅达集团
修改2019-03-05 15:05:16
1.5K0
修改2019-03-05 15:05:16
举报
文章被收录于专栏:工作专用1工作专用1工作专用1

近来在一次混合云架构中API接口暴露由于种种原因,遇到点波折,记录一下。

客户为金融企业对SLA要求及数据安全性很高,有限于考虑到业务的高可用性,采用混合云部署,业务流量入口为阿里金融云,前端可以添加安全设备WAF/CDN/高防IP等,之后Cname到统一入口SLB负载均衡上,后端采用虚拟服务器组,组内ECS部署在同Region的不同Zone,保障跨Zone的靠可用性,考虑到数据的安全性将数据持续化在IDC侧,阿里云与IDC通过云上部署深信服设备与IDC侧Cisco设备通过Ipsec ×××互联(考虑到稳定性目前已经实施专线互通),后端APP-Server与DB-Server部署在IDC,可参考下图:

1.1 客户需求:

客户之前由于同域名同端口下有不少业务,因此采用Nginx反向代理后端APP模式,HTTPS方式,将证书放在前端WEB-Server侧即可,或可以使用SLB的七层模式将证书放置在SLB上。但是此次部署的为一个后端的APP为HTTPS业务,是带有证书,需要将接口暴露到公网。

1.2 问题痛点:

经过测试客户在IDC侧APP-server部署的接口为HTTPS模式,Nginx采用http方式反代502证书不信任,无法反向代理成功,想到利用HTTPS方式反代,或者联系客户修改后端API接口为HTTP方式,但是金融云Web-Server也需要APP-Server的证书,客户反馈其他供应商部署短时间无法获取到,需要先忽略证书解决问题。

1.3 架构剖析:

此时修改IDC侧为HTTP方式无法进行,由于证书拿不到,金融云Web-Server侧利用HTTPS方式反向也无法进行,一度陷入僵局,继续沟通得知改接口正式环境已经在IDC侧部署完毕,但测试新功能需要暴露公网测试接口,那为何不再IDC侧有公网IP的服务器进行代理,或者防火墙DNAT进来,实现需求呢,客户反馈IDC侧IP规划已经没有,还需要协助从金融云暴漏测试接口。

1.4 解决方案:

既然Nginx反代不行,SLB后端也无法直接添加IDC侧的APP服务器,那就利用WEB-server利用iptables进行端口转发,配置DNAT和SNAT直接将流量抛过去,想到这里开始着手测试实施。

二、技术实现

具体的操作部署由于涉及到系统/网络/中间件/及阿里云产品相关操作,在此就不一样截图列举,简单列下实施步骤及注意要点。

2.1 架构图

2.2 网络互通

首选需要在金融云深信服与IDC侧思科防火墙方向对应端口及IP,实现网络互通,需要注意在阿里云需要配置到IDC侧的路由,web-server与app-server可以相关正常内网通讯。

2.3 域名及SLB

由于是测试域名前端暂时未添加WAF/高防IP等防护设备,将域名解析A记录解析至SLB公网地址,SLB配置虚拟服务器组,组内添加Web-Server,此时监听端口为Dnat端口。

2.4 IPTABLES转发

根据SLB配置的端口转发,配置响应规则,例如:

-A PREROUTING -d 10.69.xx.xx/32 -p tcp -m tcp --dport 8080 -j DNAT --to-destination 172.19.xx.xx:8080

-A POSTROUTING -d 172.19.xx.xx/32 -p tcp -m tcp --dport 8080 -j MASQUERADE

配置完成可以从公网利用postman测试接口。

三、反思

由于受限与种种业务原因,这边列举下具体的可实施方案,可供以后参考:

  • 如果可能可直接在IDC侧有公网服务器进行反代暴露接口
  • 在IDC侧Cisco 设备Dnat映射业务端口进行暴露接口
  • 在阿里金融云如果有证书可以采用HTTPS反代暴露接口
  • 更改后端APP-server为HTTP方式,可以在阿里云侧采用HTTP方式反代暴露接口
  • 在WEB-server采用iptables 转发进行HTTPS方式暴露接口。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.1 客户需求:
  • 1.2 问题痛点:
  • 1.3 架构剖析:
  • 1.4 解决方案:
  • 二、技术实现
    • 2.1 架构图
      • 2.2 网络互通
        • 2.3 域名及SLB
          • 2.4 IPTABLES转发
          • 三、反思
          相关产品与服务
          内容分发网络 CDN
          内容分发网络(Content Delivery Network,CDN)通过将站点内容发布至遍布全球的海量加速节点,使其用户可就近获取所需内容,避免因网络拥堵、跨运营商、跨地域、跨境等因素带来的网络不稳定、访问延迟高等问题,有效提升下载速度、降低响应时间,提供流畅的用户体验。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档