如何实现通过公网暴露Git的URI,实现外网访问App的代码

问题描述

由于中国的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的结果会显示为:

图片[1]-如何实现通过公网暴露Git的URI,实现外网访问App的代码-唐朝资源网

在后端服务器的 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

图片[2]-如何实现通过公网暴露Git的URI,实现外网访问App的代码-唐朝资源网

克隆/推送截图:

参考文献

使用应用程序网关配置应用服务:%2Cazure-portal

从本地 Git 部署到 Azure 应用服务:

[结束]

© 版权声明
THE END
喜欢就支持一下吧
点赞134赞赏 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容