如何强制浏览器连接Azure Cloud Service指定Web Role节点?
强制绑定Azure Cloud Service指定Web Role节点的实现方法
有两种经过验证的可靠方法可以实现该需求,同时适配你当前正在使用的Classic版本和迁移中的Extended Support版本:
方法1:通过实例级公共IP(PIP)直接访问(双版本兼容)
不需要经过云服务默认负载均衡调度,直接访问单个节点的公网IP:
- Classic版本配置:在服务的
ServiceDefinition.csdef文件对应Web Role的配置段中添加实例IP声明即可:
部署完成后即可在Azure门户的实例列表中拿到每个节点的独立公网IP,直接通过IP+端口访问指定节点。<InstanceAddress domainName="yourappdomain"> <PublicIPs> <PublicIP name="nodePublicIP" /> </PublicIPs> </InstanceAddress> - Extended Support版本配置:直接在Azure门户对应云服务的实例管理页,为单个节点启用独立公网IP即可,无需修改服务配置文件。
注意:该方法需要为节点开放对应端口的入站NSG规则,仅建议在故障排查阶段临时开启,验证完成后及时关闭避免安全风险
方法2:通过ARR亲和性Cookie指定节点(零配置改动,首选排查方案)
Azure Cloud Service的负载均衡默认支持ARR会话亲和性,每个节点会返回唯一标识自身实例的Cookie,你可以手动固定请求携带的Cookie实现强制路由:
- 第一步:正常访问云服务域名,从浏览器开发者工具的请求Cookie列表中找到名为
ARRAffinity的字段,重复访问几次收集到所有节点对应的ARRAffinity值即可。 - 第二步:排查指定节点时,通过浏览器开发者工具的网络面板手动给请求头添加
Cookie: ARRAffinity=目标节点对应值,或者用浏览器请求头修改插件固定该Cookie,后续所有请求就会被负载均衡直接转发到指定节点。
该方案不需要修改云服务任何配置,也不需要开放额外公网权限,是日常单点故障排查的最优选择。
如果你的服务配置了自定义负载均衡规则,只要没有显式禁用ARR亲和性,上述两种方法均可以正常生效。
内容的提问来源于stack exchange,提问作者Aleks G
相关产品推荐
相关产品推荐

