返回笔记
DevOps
Nginx 反向代理完全指南
Nginx
反向代理
负载均衡
Docker
Web服务器
Nginx 是互联网最流行的 Web 服务器和反向代理。你访问的绝大多数网站,后面都跑着 Nginx。
Nginx 能做什么
- 静态文件服务:直接返回 HTML、CSS、JS、图片
- 反向代理:把请求转发到后端应用(FastAPI、Node.js等)
- 负载均衡:把流量分发给多台后端服务器
- SSL 终结:处理 HTTPS 加解密,后端只关心 HTTP
- 缓存:缓存常用内容,减轻后端压力
- 限流:保护后端不被恶意流量打垮
反向代理完整配置
server {
listen 80;
server_name example.com;
# 静态文件
location /static/ {
alias /app/static/;
expires 30d;
add_header Cache-Control "public";
}
# API 反代
location /api/ {
proxy_pass http://backend:8000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_read_timeout 60s;
}
# 前端页面
location / {
proxy_pass http://frontend:3000;
}
}
负载均衡
upstream backend {
server backend1:8000 weight=3;
server backend2:8000 weight=1;
server backend3:8000 backup;
}
按权重分发请求,某台挂了自动跳过。
常用优化
- gzip 压缩:gzip on; gzip_types text/plain application/json;
- 连接保持:keepalive_timeout 65;
- 上传限制:client_max_body_size 100M;
- Worker 进程数:worker_processes auto; 自动匹配 CPU 核心数