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