【问题标题】:nginx suddenly starts to throw permission denied to /var/lib/nginxnginx 突然开始向 /var/lib/nginx 抛出权限被拒绝
【发布时间】:2017-07-26 07:39:29
【问题描述】:

我有一个 nginx 服务器,它运行良好大约 1 年,但两周前服务器已转移到另一个提供商。一切正常,但过了一段时间,大约 3 天后,服务器开始在上传文件时抛出错误,例如:

2017/07/26 09:58:18 [crit] 13254#13254: *2829396 open() "/var/lib/nginx/proxy/7/12/0000002127" failed (13: Permission denied) while reading upstream, client: 195.82.157.12, server: ***, request: "GET *** HTTP/1.0", upstream: "***", host: "***", referrer: "***"

但这是错误的,我什至将 shure 的权限更改为 777,但仍然出现相同的错误。

日志中没有其他错误,只有在 /var/lib/nginx/proxy/ 之后具有不同数字名称的“权限被拒绝”。 重新启动 nginx 后一切正常,但现在此错误以随机间隔返回,大约 2 天。我找到的唯一解决方法是重新启动。

任何人都可以帮助我,或者至少给出一个线索,我应该挖掘来解决这个问题吗?

【问题讨论】:

  • /var/lib/nginx/proxy 是 Debian (Ubuntu) 上代理模块临时文件的默认路径。您可以使用 proxy_temp_path 指令更改它,或者找出您机器中的这条路径有什么问题。
  • 可能是你没有足够的空间?
  • 我也先考虑空间,但没有,大约 100GB 可用空间。更改 proxy_tmp_path 的想法看起来很有趣,我会尝试一下,谢谢。
  • 你有解决办法吗?我们遇到的和你一样。重新加载后一切顺利,但随机数小时或数天后抛出错误。我添加“client_body_in_file_only on;”并且文件保存正常,所以我认为没有权限错误。
  • 抱歉,没有什么要补充的。由于一些财务问题和问题已解决,我们在几周内再次更换了供应商。

标签: nginx permissions


【解决方案1】:

使用此命令授予/var/lib/nginx/ 的权限:

chown -R www-data:www-data /var/lib/nginx/

这对我有用。

【讨论】:

  • 我必须反复这样做。
【解决方案2】:

问题似乎是因为权限问题。

你能检查一下正在运行 nginx 的用户吗?并查看文件夹/var/lib/nginx/proxy/ 上存在哪些权限?

可能是 nginx 试图在代理文件夹中创建一个具有此随机名称的新文件。但由于基础文件夹权限不正确,无法创建。

我建议为 nginx 用户将 chown -R 和 777 -R 分配给 /var/lib/nginx/proxy/ 文件夹本身。

如果这不起作用,您也可以尝试在/var/lib/nginx/ 上执行相同的操作,看看是否有效。但是,我不确定它会导致多大的安全问题。

希望这会有所帮助。

【讨论】:

  • 是的,我有。此外,正如 Alexey 所提到的,这也可能是内存问题。
  • 好的,如果这个问题不够清楚,检查权限是我要做的第一件事。一切都很好,只是为了舒尔我做 chmod 777 /var/lib/nginx/
【解决方案3】:

至于为什么这个突然开始发生在你身上,我想这是因为 NGINX 只在文件大于 9K 时才将文件放在那里。也许您之前正在处理更小或相同大小的文件。

【讨论】:

    【解决方案4】:

    试试这个:将 nginx proxy_temp_path 更改为 /tmp,编辑您的代理配置文件,添加:

    proxy_temp_path /tmp;
    

    然后重启 nginx。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-08-25
      • 2021-03-27
      • 2017-11-03
      • 2022-01-23
      • 1970-01-01
      • 2020-02-08
      • 2018-10-02
      • 1970-01-01
      相关资源
      最近更新 更多