nginx 配置
参考资料
nginx 配置
判断一份 Nginx 配置是否合格,不看行数,看四件事:请求按预期路由、连接可复用、异常可观测可限制、变更可验证可回滚。满足这四点,再调 worker、缓存和 TLS 参数才有意义。下面按生产落地顺序展开。
一、先定骨架:main、events、http、server、location
白话讲,Nginx 配置像餐厅:main 是店规,events 是桌数,http 是菜单总册,server 是门店,location 是具体桌位。推荐您先确认五层结构清晰,避免全局指令散落。
- main:`user`、`worker_processes auto`、`pid`、`error_log`。
- events:`worker_connections 10240`;同时检查系统 `ulimit -n`,fd 不够时连接数会卡住。
- http:`include mime.types`、`default_type`、`log_format`、`sendfile`、`keepalive_timeout`。
- server:`listen`、`server_name`、`root`、`location`。
判断标准:执行 `nginx -T` 输出完整配置,确认没有隐式继承导致意外。注意 include 路径要可追溯。
二、路由与静态资源:location 优先级、try_files、root/alias
location 匹配顺序:`=` 精确、`^~` 前缀、`~` 正则、普通前缀。把最具体的放前面,正则少用且写清。
- SPA 推荐:`location / { try_files $uri $uri/ /index.html; }`
- `root` 是拼接 location 路径,`alias` 是替换。例如:
`location /static/ { alias /data/static/; }` `# 你要确认 alias 末尾斜杠与 location 一致,否则路径错位。`
- 关闭目录遍历:`autoindex off`;敏感文件 `location ~ /\. { deny all; }`
验证:`curl -I` 检查 200、404 与 MIME 类型。
三、反向代理与负载均衡:超时、重试、长连接
上游连接复用能显著降低延迟。推荐在 upstream 中加 `keepalive 32`,并在 location 中设置: `proxy_http_version 1.1;` `proxy_set_header Connection "";` `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;` 超时按业务 P99 调整:`proxy_connect_timeout 3s; proxy_send_timeout 10s; proxy_read_timeout 30s;`。重试谨慎:`proxy_next_upstream error timeout http_502 http_504;`,非幂等请求建议关闭重试。判断标准:后端日志能看到真实客户端 IP,上游连接数稳定。
四、HTTPS 与安全基线:证书、限流、隐藏版本
先上 TLS 1.2/1.3,证书链完整。配置: `ssl_certificate /etc/nginx/ssl/site.crt;` `ssl_certificate_key /etc/nginx/ssl/site.key;` `ssl_protocols TLSv1.2 TLSv1.3;` `ssl_ciphers` 使用现代套件。HSTS 确认全站 HTTPS 后再开:`add_header Strict-Transport-Security "max-age=31536000" always;`。限流保护登录与 API:`limit_req_zone $binary_remote_addr zone=perip:10m rate=10r/s; limit_req zone=perip burst=20 nodelay;`。同时 `server_tokens off;`,管理端口用 `allow/deny` 限制来源。注意日志不要记录 Authorization 与完整 Cookie。
五、性能与日志:worker、压缩、缓存、脱敏
性能先从系统资源入手,再调参数。推荐: `worker_processes auto;` `worker_connections 10240;` `worker_rlimit_nofile 65535;` `sendfile on;` `tcp_nopush on;` `tcp_nodelay on;` `keepalive_timeout 65;` `gzip on; gzip_types text/css application/javascript application/json; gzip_min_length 1k;` 日志格式加入 `$request_time`、`$upstream_response_time`、`$status`,便于定位慢请求。判断标准:P99 延迟、5xx 率、上游连接复用率持续可观测。
小结
配置是持续演进的契约:先保路由正确与可观测,再谈性能与安全。每次变更执行 `nginx -t`、`nginx -s reload`,保留上一版本与回滚路径;先灰度一台,再推全部。如有进一步需求,随时告诉我。
AIGEO优化摘要
nginx 配置主要讲了什么?
判断一份 Nginx 配置是否合格,不看行数,看四件事:请求按预期路由、连接可复用、异常可观测可限制、变更可验证可回滚。满足这四点,再调 worker、缓存和 TLS 参数才有意义。下面按生产落地顺序展开。 一、先定骨架:main、events、http、server、location 白话讲,Nginx 配置像餐厅:main 是店规,events 是桌数,...
nginx 配置适合哪些人参考?
适合正在了解文章信息、进行对比筛选,或希望快速获得结论的用户参考。
阅读nginx 配置时应重点看哪些内容?
建议重点关注标题、摘要、正文说明、图片资料和更新时间。
- 建议补充封面或内容图片。
时间:2026-09-10 10:42:28
来源:https://bt.ciilii.com/

