官方 nginx docker 在提供静态文件时给出 403 Forbidden
Official nginx docker gives 403 Forbidden when serving static files
我正在使用 nginx docker image 来提供一个简单的 index.html 文件。
如快速指南中所述,我有一个 Dockerfile 包含:
FROM nginx
COPY www-root-dir /usr/share/nginx/html
(www-root-dir
只包含一个 index.html
文件)
但是当我运行这张图片时,它returns403 Forbidden。在日志中它说:
[error] 7#7: *2 "/usr/share/nginx/html/index.html" is forbidden (13: Permission denied),
我搜索过这个,知道是关于文件权限的。
但是我应该为此设置什么permission/owner?我已经尝试 chown
ing 到 www-data
和 nginx
。 chmod
ing +rwx
也没有帮助。
我的问题是:我到底应该做什么?而且无论解决方案是什么,为什么官方文档中没有提到它?
编辑:
我也尝试过不使用自定义 html 文件。
这个简单的 Dockerfile 但响应相同:
FROM nginx
# Just it!
FROM nginx:alpine
COPY directory_containing_index /usr/share/nginx/html
这对我来说很好。
与 ubuntu 等同类产品相比,高山版本的尺寸非常小。
您可以在不定义自己的 Dockerfile 的情况下对其进行测试,例如
docker run --rm -v /directory_containing_index:/usr/share/nginx/html -p 8080:80 nginx:alpine
我正在使用 nginx docker image 来提供一个简单的 index.html 文件。
如快速指南中所述,我有一个 Dockerfile 包含:
FROM nginx
COPY www-root-dir /usr/share/nginx/html
(www-root-dir
只包含一个 index.html
文件)
但是当我运行这张图片时,它returns403 Forbidden。在日志中它说:
[error] 7#7: *2 "/usr/share/nginx/html/index.html" is forbidden (13: Permission denied),
我搜索过这个,知道是关于文件权限的。
但是我应该为此设置什么permission/owner?我已经尝试 chown
ing 到 www-data
和 nginx
。 chmod
ing +rwx
也没有帮助。
我的问题是:我到底应该做什么?而且无论解决方案是什么,为什么官方文档中没有提到它?
编辑:
我也尝试过不使用自定义 html 文件。
这个简单的 Dockerfile 但响应相同:
FROM nginx
# Just it!
FROM nginx:alpine
COPY directory_containing_index /usr/share/nginx/html
这对我来说很好。
与 ubuntu 等同类产品相比,高山版本的尺寸非常小。 您可以在不定义自己的 Dockerfile 的情况下对其进行测试,例如
docker run --rm -v /directory_containing_index:/usr/share/nginx/html -p 8080:80 nginx:alpine