问题描述
由于中国的App Service需要对外ICP备案(公网访问),很多情况下,Web应用部署到App Service后,通过Application Gateway(应用网关),提供对 Internet 的公共访问。网络访问。
上图为使用Application Gateway后从外网访问App Service的示意图。如果直接访问,会出现403错误页面。
那么,在这种情况下,我们如何通过公网暴露Git的URI,并在外网成功部署App Service的代码呢?
问题
当然可以通过Application Gateway暴露App Service的默认GIT Repository地址::443/.git
如何配置Application Gateway和App Service的服务,参考官方文档:Configure Application Service with Application Gateway (%2Cazure-portal)
在配置过程中,必须注意以下三点:
第一点:为应用网关配置自定义域名(本实验只用了很短的时间,所以使用公网IP地址解析)
第二点:App Gateway的Backend Pool不能直接选择App Service。您需要选择 IP 地址或 FQDN 并输入 SCM 的域名。如:.scm.chinacloudsites.cn
第三点:为App Gateway配置自定义健康探针(Health Probes),Host为SCM域名(.scm.chinacloudsites.cn),Path可以指向/.git或者SCM的目录/。
由于访问SCM站点需要认证,所以App Gateway发出的检测结果都是401 – Unauthorized。所以必须承认401是正确的检测结果。
以上三点配置完成后,可以返回应用网关的Backend Health页面查看后端池的健康状态。只有当后端池的状态为 Health 时,才能成功访问后端,否则会得到 502 页面。
如果在第三步中没有将401配置为匹配返回状态,Backend Health的结果会显示为:
在后端服务器的 HTTP 响应中收到无效状态代码:401。根据运行状况探测配置,200-399 是可接受的状态代码。修改探针配置或解决后端问题。
应用网关设置好后,开始本地Git的部署验证:
首先,复制App Service Local Git Repository的地址,将HTTPS改为HTTP,域名替换为Application Gateway的IP地址
然后,使用 git clone/.git 获取原库中的代码
最后,使用 git commit / git push / git remote -v
克隆/推送截图:
参考文献
使用应用程序网关配置应用服务:%2Cazure-portal
从本地 Git 部署到 Azure 应用服务:
[结束]
暂无评论内容