问题:nginx:[emerg] mkdir()“/var/cache/nginx/client_temp”失败(13:权限被拒绝)

4
我正在尝试在Openshift上运行Nginx,但遇到了目录权限问题。由于这个错误,容器无法创建。手动创建的文件设置了以下权限。
drwxr-xr-x.  3 root root   79 Dec 22 02:50 /etc/nginx
drwxr-xr-x.  2 root root   26 Dec 22 02:50 /etc/nginx/conf.d
-rw-r--r--.  1 root root 5231 Dec 22 02:48 /etc/nginx/mime.types
drwxrwxr-x.  3 root root   25 Dec 22 01:23 /var/cache/nginx
drwxrwxr-x.  2 root root    6 Dec 22 01:10 /var/log/nginx
drwxrwxr-x. 47 root root 1340 Dec 21 06:51 /var/run

你能解释一下你在部署这个应用程序时采取了哪些步骤吗?你使用了哪个容器镜像?同时有任何清单文件都会很有帮助。 - user15659347
我正在使用Nginx镜像“nginxinc / nginx-unprivileged”。这些文件是服务,部署/守护进程和配置映射。 - majid asad
你能提供服务、部署和配置映射文件吗? - mdobrucki
相同问题的答案在此处 https://dev59.com/41QJ5IYBdhLWcg3wMS4e - Michael Chudinov
2个回答

0

0

正如@dbaker提到的,RedHat作为一家安全公司,在openshift中关于安全方面的决策更加严谨或者说更具攻击性,例如默认情况下使用随机UID运行容器。

您可以通过重新分配不同Nginx用途的路径来解决这个问题。

更改PID位置

pid /tmp/nginx.pid;

更改客户端临时文件夹位置(您的问题):

client_body_temp_path /tmp/nginx/client_temp

您还可以像之前的答案中指定的经过认证、更适合面向安全性的 RedHat 产品的镜像一样,从 Docker Hub 使用非特权 nginx镜像,以及由 RedHat 推荐的另一个标签 rhscl/nginx-120-rhel7,以类似的方式使用其它路径。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接