You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure虚拟机自托管网站:如何实现域名直接访问(无需端口)

解决方案

方案1:Azure网络接口入站端口转发(无需修改服务代码)

  • 登录Azure门户,定位到目标虚拟机,进入其关联的网络接口配置页
  • 左侧菜单选择「入站端口转发」,点击「添加」
  • 配置转发规则:
    • 规则名称:自定义(如HTTP_80_to_10000)
    • 目标虚拟机内部IP:填写Actix Web绑定的内网IP X.X.X.X
    • 外部端口:80(HTTP协议默认端口)
    • 内部端口:10000(你的Actix Web服务监听端口)
  • 保存规则后,检查虚拟机的网络安全组(NSG),确保已添加入站TCP 80端口的允许规则(源设为*)

方案2:调整服务绑定至默认HTTP端口(需修改代码)

  • 由于80是系统特权端口,需确保虚拟机拥有root权限,修改Actix Web的绑定代码:
    // 修改Actix Web绑定端口为80
    HttpServer::new(|| App::new().service(/* 你的静态文件服务 */))
        .bind(("X.X.X.X", 80))?
        .run()
        .await?;
    
  • 重启Actix Web服务后,在Azure NSG中添加允许入站TCP 80端口的规则(源设为*)

原理说明

当用户访问http://www.domainname.com时,浏览器会自动向域名对应的IP的80端口发起请求。方案1通过Azure的端口转发规则,将外部80端口的流量映射到虚拟机内部的10000端口,让Actix Web服务接收并响应;方案2则直接让服务监听默认的80端口,配合NSG的端口放行规则,直接处理HTTP请求。两种方式均无需反向代理,仅通过Azure网络配置(或少量代码调整)即可实现无端口访问。

内容的提问来源于stack exchange,提问作者Sri Varshan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 07:13:11