#Nginx
共 47 篇文章
Nginx 静态文件报 403:父目录缺少搜索权限
Nginx 读取静态文件时出现 403 和 Permission denied,沿完整路径核对工作进程身份与目录搜索权限;对已确认的目录定向授权,并保留 ACL 备份与回退。
Nginx 配置检查报 server_names_hash_bucket_size: 64
Nginx 报 server_names_hash_bucket_size: 64 时,64 是当前值。针对较长域名导致的桶容量不足,在正确的 http 上下文中调整数值,并区分 max_size 提示、配置检查和重载结果。
Nginx 登录回调报 upstream sent too big header,调缓冲仍无效
响应头过大时先辨认 FastCGI 与 HTTP upstream,修改实际入口的对应缓冲,检查 Cookie 生成逻辑,并核对配置确实生效。
Nginx 把 PHP-FPM 接口的 500 JSON 换成 HTML 错误页
PHP 接口已经返回状态码 500 和 JSON 错误内容,客户端收到的却是站点统一的 HTML 错误页。正常请求仍是 JSON,只有失败请求被替换时,应核对处理该接口的 fastcgi_intercept_errors 和 error_page,而不是给 HTML 强行加一个 JSON 类型。
Nginx 把 proxy_pass 改成变量后返回 502:no resolver defined to resolve
固定域名代理正常,改成变量后 502:配置可解析内部域名的 resolver,并核对变量形式是否改变了接口路径。
后端容器未启动,Nginx 报 host not found in upstream
Docker 中一个可选后端没有启动,Nginx 因 host not found in upstream 无法加载配置。适用于开源版 Nginx 1.27.3 及以上版本,通过 resolve、zone 和 resolver 配置运行时解析,并核对网络、请求路径和回退条件。
Nginx proxy_cache 连续 MISS:响应和配置都没有缓存有效期
核对上游响应的有效期与缓存限制,为确认公开的 200 响应设置有限 TTL,并验证命中、身份隔离和内容更新行为。
Nginx 代理 /api/ 返回 404,直接访问后端接口正常
后端 /users 正常,经过 Nginx 的 /api/users 却返回 404,可通过实际请求路径判断是否多保留了 /api/ 前缀。说明 proxy_pass 有无 URI 的区别、末尾斜杠的替换规则,以及 /api 入口的跳转和加载验收。
Nginx 容器反向代理出现 502:localhost 指向了哪里
宿主机能访问后端,Nginx 容器却返回 502?结合网友的 Nextcloud 案例,区分宿主机与容器 localhost,核对内部端口和共同网络。
Nginx 配置 http2 on 后报 unknown directive "http2"
独立 http2 指令从 Nginx 1.25.1 开始提供。核对实际运行版本和 HTTP/2 模块,按旧版兼容语法或升级后的配置处理,并在重载前验证。
Nginx 正则含 {2} 后无法启动:pcre_compile failed missing )
Nginx location 正则带量词时参数被配置解析截断,先为整个表达式加引号,再核对实际匹配范围。
Nginx 代理启用 SNI 的 HTTPS 后端时返回 502
浏览器直连 HTTPS 后端正常,Nginx 代理却在 TLS 握手时被重置。对照带 SNI 与不带 SNI 的请求,配置正确的上游名称、HTTP Host 和证书验证。
Nginx 条件日志报 unknown log format "if=$loggable"
Nginx access_log 把 if=$loggable 当作未知格式时,在条件前补齐日志格式名;再核对 map 完整匹配、默认值和日志作用范围,避免配置通过却过滤错误。
Nginx 报 proxy_pass cannot have URI part
Nginx 正则 location 中,固定 proxy_pass 地址末尾的斜杠也属于 URI,可能导致配置检查失败。按后端需要保留完整路径,或先用 rewrite 改写,再通过不带 URI 的地址转发。
Nginx 代理 localhost 报 [::1] Connection refused,IPv4 后端却能访问
Nginx 日志连接的是 IPv6 回环 ::1,而后端可能只监听 127.0.0.1。通过两种地址的直连结果和监听状态确认,再局部修正上游地址并验证重载。
Nginx 加载证书报 key values mismatch:核对叶证书顺序与私钥
Nginx 更新 HTTPS 证书后报 key values mismatch,按配置实际路径、公钥配对和叶证书顺序区分原因,检查通过后再重载。
Nginx 在 location 添加响应头后,server 层的响应头消失
Nginx 在 location 新增 add_header 后,上层公共响应头消失。区分 always 与继承规则,使用公共片段,或在 1.29.3 及以后局部启用 merge,并检查重复响应头。
Nginx 把 Tomcat 子应用代理到根路径后,会话每次重建
从 Set-Cookie 和后续请求定位 Cookie Path 不匹配,在独立域名内精确改写已确认的路径,并检查同名 Cookie 冲突。
Nginx 部署 PFX 后 curl 报 60:检查是否漏了中间证书
浏览器正常而 curl 提示 unable to get local issuer certificate,先检查线上发送的链,再按叶证书、中间证书顺序组合,保留客户端证书校验。


