Nginx 静态资源代理问题

查看 176|回复 12
作者:Macv1994   
后端服务跑在 docker 里面,创建容器的时候没有映射卷,采用曲线救国的方式把容器内的文件夹手动拷贝到宿主机中,但是如果增加新的文件,宿主机中没有会导致 404 ,有没有办法在 404 的时候,直接将请求转发到后端程序处理呀?
网上有修改容器配置文件的方式,但是生产环境中容器太多了,停止会导致很多服务异常,所以不考虑这种方案。
我现在想的方案是 NGINX 静态资源 404 的时候,直接把请求转到后端服务去处理,但是不知道配置文件咋写,有咩有大佬指教一下。

容器, 后端, Nginx, 文件

julyclyde   
所以,你为啥要用容器呢
mango88   
试试 try_files
loading   
docker 就是为了伸缩,你另起一个新的,把旧的换下来。
SixGod66   
干好看到过:
location / {
try_files /system/maintenance.html
$uri $uri/index.html $uri.html
@mongrel;
}
location @mongrel {
proxy_pass http://mongrel;
}
lhbc   
这里有坑啊
如果容器里的文件有更新版本,那你宿主中的内容是没有更新的
如果不能维持一致性,那直接映射端口到容器吧
Macv1994
OP
  
@lhbc 我是打算写个定时任务拷贝,如果宿主找不到,就转到后端去处理。
litchinn   
改容器痛半小时,不改痛 3 年,我赞成 3 楼
zliea   
一般上在集群中的 Nginx 容器:
1. 要么这个 Nginx 只为一个项目所用,每次发版,都是新的镜像;
2. 要么 Nginx 作为统一的静态资源服务器,这个 Nginx 的存储一定要挂载出来,甚至推荐性能比较好的共享存储。
“网上有修改容器配置文件的方式,但是生产环境中容器太多了,停止会导致很多服务异常,所以不考虑这种方案。”
这个你修改一个容器又不影响其他容器,甚至你可以全都改好了再进行替换都是可以的。
ThirdFlame   
nginx 不应该是反代进去么,然后静态文件缓存。 这不是所有问题都解决了。
您需要登录后才可以回帖 登录 | 立即注册

返回顶部