首页 > 解决方案 > 如何取消 Nginx 上传限制?

问题描述

我们有一个私有的 docker 注册表和一个用于身份验证和反向代理的 Nginx infront。最近每次我尝试上传大图层(大约 2 Gi)的图像时,我都会遇到不同的错误,例如:

The push refers to repository [mydockerurl]
ce7ac3355b6d: Layer already exists
0f0c22119274: Pushing [==================================================>]  3.232GB/3.232GB
e0b3afb09dc3: Layer already exists
6c01b5a53aac: Layer already exists
2c6ac8e5063e: Layer already exists
cc967c529ced: Layer already exists
received unexpected HTTP status: 500 Internal Server Error

#OR

The push refers to repository [mydockerurl]
ce7ac3355b6d: Layer already exists
0f0c22119274: Pushing [==================================================>]  3.232GB/3.232GB
e0b3afb09dc3: Layer already exists
6c01b5a53aac: Layer already exists
2c6ac8e5063e: Layer already exists
cc967c529ced: Layer already exists
net/http: HTTP/1.x transport connection broken: write tcp [my-machine-ip]:51424->[docker-ip]:443: write: broken pipe

我什至试图将图像分成更小的层,但我仍然面临这个问题。

我检查了 Nginx 的配置,但所有大小参数都设置为零,这意味着没有限制:

~/nginx$ grep -rn . -e size

./auth/nginx.conf:34:     client_max_body_size 0;
./auth/nginx.conf:45:         client_max_body_size 0;
./auth/nginx.conf:64:    client_max_body_size 0;
./auth/nginx.conf:92:      client_max_body_size 0;
./auth/nginx.conf:110:    client_max_body_size 0;
./auth/nginx.conf:126:        client_max_body_size 0;
./auth/nginx.conf:139:        client_max_body_size 0;
./auth/nginx.conf:154:    client_max_body_size 0;
./auth/nginx.conf:174:    client_max_body_size 0;

我仍然认为这个限制是由 Nginx 应用的,我该如何消除这个限制?或者我如何确定这不是 Nginx 施加的限制?

更新

添加并设置client_body_timeout为 600s 后,我仍然得到同样的错误。

更新 2

我发现问题是我们的服务器上没有足够的可用磁盘空间,这就是为什么我能够推送小层但不能推送大层的原因。

标签: dockernginx

解决方案


推荐阅读