gpt4 book ai didi

nginx - Docker - index.html Nginx 文件共享无效

转载 作者:行者123 更新时间:2023-12-02 06:03:17 24 4
gpt4 key购买 nike

我的 docker-compose.yml 文件如下所示:

web:
image: nginx:latest
volumes:
- /c/Users/marcin/docker/nginx-www/nginx/html/:/usr/share/nginx/html/
ports:
- "80:80"

/c/Users/marcin/docker/nginx-www/nginx/html/ 中,我创建了 index.html 文件,其中包含以下内容:

<html>
<head>
</head>
<body>
hello index
</body>
</html>

但是当我查看我的域时,我看到空页面,但查看页面源代码时我看到类似这样的内容:

<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>

Docker 似乎正在使用默认的 Nginx 文件,并且仅使用其中的一部分(可能是它在我的 index.html 文件中的确切长度。对于其他文件,例如 abc .html 不存在这样的问题(可能是因为它在 Nginx 镜像中默认不存在)。如何解决这个问题以显示 index.html 文件的正确内容?

最佳答案

由于您的卷以 /c/... 开头,我假设您正在 Windows 上使用 Docker 工具箱,并且附带了 docker-machine 工具用它。您遇到的是known issue Nginx(或者更确切地说,Nginx 使用的 sendfile Linux 系统调用)与 Virtualbox 共享文件夹的结合。

Vagrant documentation中也提到了这个问题(也使用 VirtualBox),它还附带了一个可能适合您的建议解决方案:

There is a VirtualBox bug related to sendfile which can result in corrupted or non-updating files. You should deactivate sendfile in any web servers you may be running.

In Nginx:

sendfile off;

In Apache:

EnableSendfile Off

根据bug report in the vendor bug tracker中的最新评论,如果您使用 open_file_cache 指令(默认情况下禁用),您还需要将其关闭:

open_file_cache off;

关于nginx - Docker - index.html Nginx 文件共享无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35997936/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com