网淘吧来吧,欢迎您!

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/users
  • proxy_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_addr
  • proxy_set_header X-Real-IP $remote_addr— 客户端IP,而非代理IP
  • proxy_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_failsfail_timeout实现 — 标记服务器为不可用状态
  • keepalive 32用于连接池 — 减少连接开销

SSL/TLS配置

  • ssl_certificate需包含完整证书链 — 证书+中间证书,而非仅主证书
  • ssl_certificate_key私钥——保持权限限制
  • ssl_protocols TLSv1.2 TLSv1.3——禁用较旧的协议
  • ssl_prefer_server_ciphers on——服务器选择加密套件,而非客户端

常见错误

  • nginx -tnginx -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级别输出详细信息
  • 使用mapif进行条件日志记录 — 跳过健康检查

Nginx

免责申明
部分文章来自各大搜索引擎,如有侵权,请与我联系删除。
打赏

文章底部电脑广告
手机广告位-内容正文底部

相关文章

您是本站第393761名访客 今日有1篇新文章/评论