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

Linux环境Azure Function底层容器端口修改及80端口占用问题处理

解决Azure Functions Runtime不可达(端口80占用+WEBSITES_PORT无效)问题

1. 定位端口占用的真实进程

登录Linux容器实例,执行以下命令找出占用80端口的进程:

netstat -tulpn | grep :80
# 或用更高效的ss命令
ss -tulpn | grep :80

如果是系统自带Web服务(如nginx、apache),停止对应服务后重启函数应用:

sudo systemctl stop nginx
# 对应apache服务则执行
sudo systemctl stop apache2

2. 修正WEBSITES_PORT的配置逻辑

  • 必须在应用程序设置中配置WEBSITES_PORT,值选未被占用的端口(如8080、3000),不要在Dockerfile或启动命令里硬编码。
  • 检查函数启动命令:如果命令写死了func start --port 80,改成读取环境变量的形式:
    func start --port $WEBSITES_PORT
    
    确保函数应用实际监听你设置的端口。

3. 剥离Hybrid Connection的端口干扰

Hybrid Connection映射的是本地API的80端口,和函数应用自身监听端口完全独立:

  • 确认Hybrid Connection的目标端口是本地80,不要和函数应用的监听端口重叠。
  • 重启本地的Hybrid Connection Manager(HCM),排除HCM异常导致的端口占用假象。

4. 调整自定义Docker镜像的网络配置

如果使用自定义镜像:

  • 在Dockerfile中添加EXPOSE <自定义端口>,比如EXPOSE 8080,和WEBSITES_PORT保持一致。
  • 容器启动命令不要强制绑定80端口,改成跟随环境变量:
    docker run -p $WEBSITES_PORT:$WEBSITES_PORT <镜像名>
    

验证步骤

  1. 重新部署函数应用,确保所有配置生效。
  2. 查看容器日志,确认输出类似Now listening on: http://[::]:8080,说明监听端口配置正确。
  3. 在函数中调用本地API,验证Hybrid Connection连通性正常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 09:35:07