问题描述

因为中国区的App Service对外(公网访问)需要进行ICP备案,所以很多情况下,Web应用部署到App Service后,都是通过Application Gateway(应用程序网关)来对外网暴露,提供公网访问。

上图列出了使用Application Gateway后,外网访问App Service的示意图。 如果直接访问,则会出现403的错误页面。

那么,在这样的情况下,我们如何来实现通过公网暴露Git的URI,实现外网成功部署App Service的代码呢?

问题解答

当然,可以通过Application Gateway 来暴露 App Service默认的GIT Repository 地址 :https://<appservicename>.scm.chinacloudsites.cn:443/<appservicename>.git

如何配置Application Gateway 与App Service的服务,参考官方文档:使用应用程序网关配置应用服务(https://docs.azure.cn/zh-cn/application-gateway/configure-web-app?tabs=customdomain%2Cazure-portal)

在配置的过程中,必须注意以下三点:

第一点:为Application Gateway  配置自定义域名 (本次实验中只是短暂使用,所以使用公网IP地址进行解析

第二点:App Gateway 的后端池(Backend Pool) 不能直接选择App Service,需要选择 IP Address or FQDN,并输入SCM的域名。 如: <appservicename>.scm.chinacloudsites.cn

第三点:为App Gateway配置自定义健康探测(Health Probes),  Host 为SCM域名(<appservicename>.scm.chinacloudsites.cn), Path 可以指向 /<appservicename>.git  或者是SCM的跟目录 / 。

由于SCM站点的访问时需要认证的,App Gateway发出的探测结果都是401 - Unauthorized 。所以就必须接受401是一个正确的探测结果才行。

以上三点配置完成后,可以回到Application Gateway的Backend Health页面,查看后端池的健康状态,只有当后端池状态为Health时,才能成功访问到后端,否则这会得到502页面。

如果第三步中没有配置 401为一个匹配的返回状态,则 Backend Health的结果显示为:

Received invalid status code: 401 in the backend server’s HTTP response. As per the health probe configuration, 200-399 is the acceptable status code. Either modify probe configuration or resolve backend issues.

当Application Gateway设置完成后,开始Local Git的部署验证:

首先,复制出App Service Local Git Repository 的地址,把 HTTPS 改为 HTTP, 并用 Application Gateway的IP地址代替域名

然后,使用 git clone http://<ip address>/<appservicename>.git,获取原始库中代码

最后,使用 git commit / git push / git remote -v

Clone/Push截图:

参考资料

使用应用程序网关配置应用服务https://docs.azure.cn/zh-cn/application-gateway/configure-web-app?tabs=customdomain%2Cazure-portal

[END]

最新文章

  1. NSString属性什么时候用copy,什么时候用strong?
  2. 单例模式(Singleton Pattern)
  3. [DFNews] 入侵汽车控制刹车和油门?——速度与激情6 的节奏?
  4. VMware网络配置 - 三种网络模式简介
  5. 《C++标准库》
  6. maven项目导入报错
  7. 《数据通信与网络》笔记--TCP中的拥塞控制
  8. [Ramda] Basic Curry with Ramda
  9. 用Xamarin 实现园友的 :Android浮动小球与开机自启动
  10. iOS开发——导入第三方库引起的unknown type name &#39;NSString&#39;
  11. 刚开始学python——数据结构——“自定义队列结构“
  12. 【一天一道LeetCode】索引目录 ---C++实现
  13. spring boot sharding-jdbc实现分佈式读写分离和分库分表的实现
  14. python爬虫第六天
  15. jpa @onetomany 级联查询时会有重复数据,去重问题
  16. MVCC(Multi-version Cocurrent Control)多版本并发控制协议
  17. MySQL8.0安装
  18. Scania SDP3 2.38.2.37.0 Download, Install, Activate: Confirmed
  19. 数据库基础SQL知识面试题一
  20. java visualVM(jconsole)远程监控服务器java进程

热门文章

  1. iperf/LANSpeedTest网络传输速度测试工具
  2. vue预渲染及其cdn配置
  3. java高级用法之:JNA类型映射应该注意的问题
  4. SpringCloudAlibaba微服务docker容器打包和部署示例实战
  5. MATLAB地图工具箱学习心得(二)设计可变参数和位置拾取的“放大镜”式投影程序
  6. 24张图攻克border-image
  7. nacos 详细介绍(一)
  8. [AcWing 26] 二进制中1的个数
  9. C++实现矩阵类和向量类
  10. Linux-文件查找-打包压缩-tar