【问题标题】:Official nginx docker gives 403 Forbidden when serving static files官方 nginx docker 在提供静态文件时给出 403 Forbidden
【发布时间】:2020-01-21 18:51:58
【问题描述】:

我正在使用 nginx docker image 提供一个简单的 index.html 文件。
如快速指南中所述,我有一个 Dockerfile,其中包含:

FROM nginx

COPY www-root-dir /usr/share/nginx/html

(www-root-dir 只包含一个index.html 文件) 但是当我运行这个图像时,它返回 403 Forbidden。在日志中它说:

 [error] 7#7: *2 "/usr/share/nginx/html/index.html" is forbidden (13: Permission denied),

我已经对此进行了搜索,并且知道它与文件权限有关。
但是我应该为此设置什么权限/所有者?我试过chowning 到www-datanginxchmoding +rwx 也没有帮助。
我的问题是:我到底应该怎么做?而且无论解决方案是什么,为什么官方文档中没有提到?

编辑:

我也尝试过不使用自定义 html 文件。
这个简单的 Dockerfile 响应相同:

FROM nginx
# Just it!

【问题讨论】:

  • 没有自定义html文件能成功运行吗?你映射了 80 端口吗?
  • @Andrea 端口正常,因为我连接并看到 nginx 403 消息!但是,没有 index.html 也会发生同样的错误。

标签: docker nginx static-html


【解决方案1】:
FROM nginx:alpine

COPY directory_containing_index  /usr/share/nginx/html

这对我来说很好。

与 ubuntu 等同类产品相比,alpine 版本的体积非常小。 您可以在不定义自己的 Dockerfile 的情况下对其进行测试,

docker run --rm -v /directory_containing_index:/usr/share/nginx/html -p 8080:80 nginx:alpine

【讨论】:

  • 这意味着 nginx:latest 有问题并且无法工作?但是,我接受了答案,因为绕过了我的问题。谢谢
猜你喜欢
  • 2018-12-05
  • 2013-12-09
  • 2015-04-28
  • 2015-03-13
  • 2018-10-12
  • 2021-05-27
  • 1970-01-01
  • 2013-01-26
  • 2019-05-31
相关资源
最近更新 更多