Ubuntu 应用在 Azure 上的部署与排错
High Contrast
Dark Mode
Light Mode
Sepia
Forest
2 min read500 words

Ubuntu 应用在 Azure 上的部署与排错

完成 Azure 版之后,你应该看到一件事:不同云只是产品名称不同,运维方法论是一致的。排障顺序:DNS → 网络规则 → 实例 → Nginx → 应用 → 日志。

Azure 排障链路

graph TD A[Azure DNS 解析] --> B[NSG 入站规则] B --> C[VM 实例] C --> D[Nginx 反向代理] D --> E[应用进程] E --> F[Log Analytics / Azure Monitor]

三家云平台统一排障对照

检查点 AWS GCP Azure
DNS 解析 Route 53 NS Cloud DNS NS Azure DNS NS
网络规则 Security Group VPC Firewall(标签) NSG(子网或 NIC)
虚拟机 EC2 Compute Engine Virtual Machine
日志工具 CloudWatch Logs Cloud Logging Log Analytics
告警 CloudWatch Alarm Alerting Policy Alert Rule + Action Group

Azure 特有排查命令

# 查看 NSG 规则(确认 80/443 开放,22 限制来源)
az network nsg rule list \
--resource-group myapp-rg \
--nsg-name myapp-vmNSG \
--output table
# 实时查看 VM 串口日志(适合启动失败时排查)
az vm boot-diagnostics get-boot-log \
--resource-group myapp-rg \
--name myapp-vm
# 在 Log Analytics 查询应用日志(KQL 查询语言)
# 进入 Azure Portal → Log Analytics Workspace → Logs,执行:
# Syslog | where ProcessName == "nginx" | order by TimeGenerated desc | take 50
# SSH 连不上时用 Azure Bastion(无需公网 IP)
az network bastion ssh \
--name myapp-bastion \
--resource-group myapp-rg \
--target-resource-id /subscriptions/.../virtualMachines/myapp-vm \
--auth-type ssh-key \
--username ubuntu \
--ssh-key ~/.ssh/id_rsa

常见故障与处理

现象 Azure 原因 处理方法
VM 无法启动 磁盘配额不足或镜像问题 查串口日志 boot-diagnostics
域名超时 Azure DNS NS 未在注册商更新 nslookup myapp.com 8.8.8.8
502 Bad Gateway NSG 阻断应用端口或 Nginx 配置错误 curl http://127.0.0.1:3000/health
Public IP 访问不通 NSG 规则未开放 80/443 az network nsg rule list 核查

常见误区

本节执行清单

学完下一本DNS 与站点技术运营指南——继续深入公开服务入口层;或者读 LLM 生产实践指南 把这些能力迁移到 AI 系统。