后端服务跑在 docker 里面,创建容器的时候没有映射卷,采用曲线救国的方式把容器内的文件夹手动拷贝到宿主机中,但是如果增加新的文件,宿主机中没有会导致 404 ,有没有办法在 404 的时候,直接将请求转发到后端程序处理呀?
网上有修改容器配置文件的方式,但是生产环境中容器太多了,停止会导致很多服务异常,所以不考虑这种方案。
我现在想的方案是 NGINX 静态资源 404 的时候,直接把请求转到后端服务去处理,但是不知道配置文件咋写,有咩有大佬指教一下。
1
julyclyde Feb 10, 2023
所以,你为啥要用容器呢
|
2
mango88 Feb 10, 2023
试试 try_files
|
3
loading Feb 10, 2023 via Android
docker 就是为了伸缩,你另起一个新的,把旧的换下来。
|
4
SixGod66 Feb 10, 2023
|
5
lhbc Feb 10, 2023 via Android
这里有坑啊
如果容器里的文件有更新版本,那你宿主中的内容是没有更新的 如果不能维持一致性,那直接映射端口到容器吧 |
7
litchinn Feb 10, 2023
改容器痛半小时,不改痛 3 年,我赞成 3 楼
|
8
zliea Feb 10, 2023
一般上在集群中的 Nginx 容器:
1. 要么这个 Nginx 只为一个项目所用,每次发版,都是新的镜像; 2. 要么 Nginx 作为统一的静态资源服务器,这个 Nginx 的存储一定要挂载出来,甚至推荐性能比较好的共享存储。 “网上有修改容器配置文件的方式,但是生产环境中容器太多了,停止会导致很多服务异常,所以不考虑这种方案。” 这个你修改一个容器又不影响其他容器,甚至你可以全都改好了再进行替换都是可以的。 |
9
ThirdFlame Feb 10, 2023
nginx 不应该是反代进去么,然后静态文件缓存。 这不是所有问题都解决了。
|
10
yc8332 Feb 10, 2023
难道你们的容器都不销毁的吗?正常不都是再次发布的时候就会启新的销毁旧的吗
|
11
aaronkk Feb 10, 2023
有坑不及时处理后面只会越来越坑的,容器如果哪天跑崩了,就算你定时任务拷贝也会有丢失风险。
|
12
dqzcwxb Feb 10, 2023
容器不就是准备随时销毁吗 不能销毁那不是多此一举
|
13
seers Feb 11, 2023 via Android
sidecar 把资源拉进容器,这是标准做法
|