如何将Azure应用子域名testapp.azurewebsites.net指向外部服务器IP?
解决方案:将Azure App Service域名指向外部服务器IP
首先得明确一个关键限制:你无法直接修改testapp.azurewebsites.net的DNS记录。这个域名属于微软托管的azurewebsites.net域,所有DNS配置权限都在微软手里,普通用户没有权限添加或修改A/CNAME记录指向外部IP。不过有两种可行的方案来实现你的需求,取决于你是否需要保留Azure App Service的OAuth2/身份验证能力:
方案1:用Azure App Service做反向代理(保留Azure AD OAuth2验证)
如果你需要通过Azure App Service来处理Azure AD的OAuth2身份验证,再将请求转发到外部服务器,这个方案最适合:
- 登录Azure Portal,找到你的
testappApp Service实例 - 进入配置 > 路径映射页面
- 点击添加反向代理规则:
- 源路径:填
/*(表示所有请求都转发) - 目标URL:填你的外部服务器地址,比如
http://192.168.0.12(如果是HTTPS服务就用https://开头) - 保存规则
- 源路径:填
- 重要注意:如果
192.168.0.12是内网私有IP,Azure App Service默认无法访问它。你需要通过Azure VPN网关或ExpressRoute打通Azure和你的本地网络,或者把外部服务器切换到公网可访问的IP。
这样配置后,用户访问testapp.azurewebsites.net时,会先经过Azure App Service完成Azure AD身份验证,然后请求被转发到你的外部服务器上的应用。
方案2:使用自定义域名直接指向外部服务器
如果你不需要Azure App Service处理请求,只是想让一个域名指向外部服务器,同时对接Azure AD OAuth2,那就用自定义域名:
- 先购买一个属于你自己的自定义域名(比如
myappdemo.com) - 登录你的域名服务商后台,创建一条A记录:
- 主机名:填
testapp(这样生成的域名是testapp.myappdemo.com) - 记录值:填
192.168.0.12
- 主机名:填
- 在Azure AD中注册这个自定义域名的应用程序,配置好OAuth2的回调URL、权限等,确保外部服务器上的应用可以对接Azure AD完成身份验证
- 最后测试访问
testapp.myappdemo.com,确认解析到你的外部服务器,且身份验证流程正常
额外注意事项
- 如果你用反向代理方案,要确保Azure App Service的出站网络规则允许访问你的外部服务器IP(可以在App Service的网络 > 出站流量中配置)
- 若外部服务器用HTTPS,要确保证书是可信的,或者在反向代理规则中关闭SSL验证(不推荐生产环境)
内容的提问来源于stack exchange,提问作者ndAR
相关产品推荐
相关产品推荐

