gpt4 book ai didi

docker - 直接通过容器化的前端Web服务器提供静态文件?

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

我有一个Docker Compose文件,其中包含几个我想通过Nginx(总共3个容器)公开的基于PHP / FastCGI的Web应用程序。如果两个Web应用程序容器将它们的静态文件存储在“/ var / www / html”上,我如何才能使Nginx容器直接为静态文件提供服务?

我根本找不到解决方法,这意味着我必须让两个Web应用程序提供其自己的静态文件。如果我不能更改应用程序代码,这将需要从FastCGI转换为HTTP(在这种情况下)。

如果有一种方法可以将容器卷挂载在不同的路径上,就像使用主机系统可以做到的那样,则这可能是可行的。除了通过主机系统完成之外,是否有其他方法可以完成此类任务?

最佳答案

一种解决方案是将/var/www/html文件夹直接安装到nginx,以使用serving static files的nginx功能。为了简便起见,我还建议使用data-container将html文件夹安装到所有3个容器中。最终的docker-compose.yml如下所示:

nginx:
image: nginx
ports:
- 80:80
links:
- app1
- app2
volumes_from:
- html
app1:
image: [app1]
volumes_from:
- html
app2:
image: [app2]
volumes_from:
- html
html:
image: busybox
volumes:
- html:/var/www/html

Nginx的配置如下所示:
server {
root /var/www/html;

location / {
}

location ~ \.php {
fastcgi_pass localhost:8000;
...
}

location /images/ {
root /var/www/html/images;
}

location ~ \.(mp3|mp4) {
root /var/www/html;
}
}

上面的配置将通过静态资源来服务器 /images文件夹和任何 mp3/mp4文件。

关于docker - 直接通过容器化的前端Web服务器提供静态文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30493935/

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