Nginx技能使用说明
2026-04-01
新闻来源:网淘吧
围观:14
电脑广告
手机广告
何时使用
用户需要Nginx专业知识——从基础服务器块到生产环境配置。代理处理反向代理、SSL、缓存和性能调优。
快速参考
| 主题 | 文件 |
|---|---|
| 反向代理模式 | proxy.md |
| SSL/TLS配置 | ssl.md |
| 性能调优 | performance.md |
| 常见配置 | examples.md |
位置匹配
- 精确匹配
=首先,然后^~前缀,然后正则表达式~/~*,然后最长前缀 location /api匹配/api,/api/,/api/anything— 前缀匹配location = /api仅精确匹配/api— 不匹配/api/location ~ \.php$是正则表达式,区分大小写 —~*表示不区分大小写^~如果前缀匹配则停止正则搜索 — 用于静态文件
proxy_pass 尾部斜杠
proxy_pass http://backend保留 location 路径 —/api/users→/api/usersproxy_pass http://backend/替换 location 路径 —/api/users→/users- 常见错误:缺少斜杠 = 双路径 —— 或意外路由
- 使用
curl -v查看实际的后端请求
try_files
try_files $uri $uri/ /index.html用于单页应用 —— 检查文件,然后目录,最后后备方案- 最后一个参数是内部重定向 —— 或
=404表示错误 $uri/尝试带索引文件的目录 —— 设置index index.html- 不要用于代理位置 —— 直接使用
proxy_pass代理头
proxy_set_header Host $host
—— 后端看到原始主机,而非代理IPproxy_set_header X-Real-IP $remote_addrproxy_set_header X-Real-IP $remote_addr— 客户端IP,而非代理IPproxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for— 追加至链式结构proxy_set_header X-Forwarded-Proto $scheme— 用于HTTPS检测
上游服务器组
- 在
upstream代码块中定义服务器 —upstream backend { server 127.0.0.1:3000; } proxy_pass http://backend使用上游服务器组 — 包含负载均衡功能- 健康检查通过
max_fails和fail_timeout实现 — 标记服务器为不可用状态 keepalive 32用于连接池 — 减少连接开销
SSL/TLS配置
ssl_certificate需包含完整证书链 — 证书+中间证书,而非仅主证书ssl_certificate_key私钥——保持权限限制ssl_protocols TLSv1.2 TLSv1.3——禁用较旧的协议ssl_prefer_server_ciphers on——服务器选择加密套件,而非客户端
常见错误
nginx -t在nginx -s reload之前——先测试配置- 缺少分号——语法错误,信息模糊
root放在location内部——更推荐放在server中,仅在需要时覆盖alias对比root——alias替换location路径,root追加location路径- if
中的变量——if内部很多功能会失效,避免复杂逻辑— many things break inside if, avoid complex logic
变量
$uri是解码、规范化后的路径 ——/foo%20bar变为/foo bar$request_uri是包含查询字符串的原始请求 —— 与客户端发来的保持一致$args是查询字符串 ——$arg_name用于获取特定参数$host来自 Host 请求头 ——$server_name来自配置文件
性能
worker_processes auto—— 根据 CPU 核心数自动设置worker_connections 1024—— 每个工作进程的连接数,乘以工作进程数得到最大连接数sendfile on—— 启用内核级文件传输gzip on仅对文本内容启用压缩gzip_types text/plain application/json ...gzip_min_length 1000— 小文件不值得压缩
日志记录
access_log off对于静态资源 — 减少I/O- 自定义日志格式,包含
log_format— 添加响应时间、上游时间 error_log级别:debug,info,warn,error— debug级别输出详细信息- 使用
map和if进行条件日志记录 — 跳过健康检查

文章底部电脑广告
手机广告位-内容正文底部
上一篇:lead-generating技能使用说明
下一篇:Anylist技能使用说明


微信扫一扫,打赏作者吧~