---
name: yangge521/nginx-config
source: https://app.decimal.ai/s/yangge521-nginx-config@1/SKILL.md
source_sha256: 436e09c14eac
---

# Nginx 配置指南

## 概述

提供 Nginx 反向代理、负载均衡、SSL 证书、流媒体代理（RTMP/HLS）和性能调优的配置模板。

## 使用场景

- API 反向代理：将前端请求转发到后端推理服务
- SSL/HTTPS 终结：Nginx 处理 HTTPS，后端用 HTTP
- 负载均衡：多实例推理服务负载分发
- RTMP 流媒体代理：代理 SRS 流媒体服务器
- WebSocket 代理：实时通信代理
- 静态资源服务：前端静态文件 CDN
- HLS 播放代理：移动端 H5 视频播放

## 操作指南

### 1. 反向代理基础

使用 proxy_pass 转发请求，proxy_set_header 传递 Host/X-Real-IP/X-Forwarded-For。

### 2. SSL/HTTPS

配置 listen 443 ssl http2，指定证书路径。启用 TLSv1.2/1.3，配置 ssl_session_cache。HTTP 80 端口 301 重定向到 HTTPS。

### 3. 负载均衡

upstream 块定义后端池，支持轮询（默认）、权重（weight）、IP哈希（ip_hash）。配置 max_fails/fail_timeout 健康检查。

### 4. RTMP 流媒体代理

需要 nginx-rtmp-module。rtmp 块配置 application live 直播，application hls 切片。HTTP 块配置 /hls 路径播放。

### 5. WebSocket 代理

关键：proxy_http_version 1.1，proxy_set_header Upgrade/Connection "upgrade"，proxy_read_timeout 86400。

### 6. 性能调优

worker_processes auto，worker_connections 10240，开启 sendfile/tcp_nopush/tcp_nodelay，gzip 压缩，client_max_body_size 50m。

## 常见问题与排查

| 问题 | 原因 | 解决方案 |
|------|------|---------|
| 502 Bad Gateway | 后端服务未启动 | 检查后端进程状态 |
| 504 Gateway Timeout | 后端响应超时 | 增加 proxy_read_timeout |
| SSL 证书不生效 | 路径错误 | 检查证书文件路径 |
| WebSocket 断连 | 超时太短 | 增加 proxy_read_timeout |
| 上传文件失败 | body 大小限制 | 增加 client_max_body_size |
| RTMP 推流失败 | 模块未编译 | 重新编译带 rtmp 模块 |

## 扩展方向

- **Nginx + Lua**: 使用 OpenResty 实现动态路由
- **API 网关**: Nginx 作为微服务 API 网关
- **WAF 防护**: ModSecurity Web 应用防火墙
- **动态上游**: Consul/Eureka 服务发现动态上游
- **流量灰度**: 按比例分流实现灰度发布
- **边缘计算**: Nginx 边缘节点缓存和计算

## 技能链路

- **ssl-manager**: SSL 证书申请和配置
- **rtmp-streaming**: Nginx 代理 SRS 流媒体
- **cloud-deploy-cn**: 云服务器 Nginx 部署
- **docker-deploy**: Nginx 容器化部署
- **ci-cd-cn**: Nginx 配置自动化部署

## 检查清单

- [ ] SSL 证书配置正确
- [ ] HTTP 自动重定向 HTTPS
- [ ] 负载均衡策略合适
- [ ] WebSocket 升级头已配置
- [ ] 日志切割已配置
- [ ] gzip 压缩已开启
- [ ] client_max_body_size 足够大