Nginx 常用配置与运维速查
常用命令
nginx -t
nginx -T
nginx -s reload
nginx -s quit
nginx -s stop
nginx -V
tail -f /var/log/nginx/error.log
tail -f /var/log/nginx/access.log
基础配置
server {
listen 80;
server_name app.example.com;
root /var/www/app;
index index.html;
location / {
try_files $uri $uri/ /index.html;
}
location /api/ {
proxy_pass http://backend;
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_set_header X-Forwarded-Proto $scheme;
}
}
upstream backend {
server 10.0.0.11:8080;
server 10.0.0.12:8080;
keepalive 32;
}
场景速查
| 目的 |
写法 |
| SPA 路由 |
try_files $uri $uri/ /index.html; |
| 反向代理 |
proxy_pass http://backend; |
| 大文件上传 |
client_max_body_size 100m; |
| 超时 |
proxy_connect_timeout/proxy_read_timeout |
| gzip |
gzip on; gzip_types ...; |
| 限流 |
limit_req_zone + limit_req |
| 缓存 |
proxy_cache_path + proxy_cache |
| TLS |
ssl_certificate + ssl_certificate_key |
易错点
- 改配置后先
nginx -t,再 reload;直接重启会中断连接。
root 和 alias 的路径拼接不同;alias 结尾斜杠要小心。
location 优先级和正则顺序会导致请求命中错误块。
- 反代要透传
Host 和 X-Forwarded-*,否则后端生成错误 URL。
proxy_pass 结尾有没有 / 会影响路径拼接。
- 大请求/大响应要调缓冲和超时,不要只调
client_max_body_size。
- 日志格式要包含耗时和上游信息,便于排障。
相关命令
nginx — 完整命令页
curl — 验证请求
openssl — TLS 证书