Docker 推送 nexus 私人回购失败,413 请求实体太大
Docker push nexus private repo fail, 413 Request Entity Too Large
我已经部署了一个 Nexus OSS 的本地实例,它在 Nginx 反向代理之后到达。
在尝试将 docker 图像推送到在 Nexus 注册表上创建的存储库时,我遇到了
413 Request Entity Too Large
在推送中。
nginx.conf 文件看起来像这样:
http {
client_max_body_size 0;
upstream nexus_docker {
server nexus:1800;
}
server {
server_name nexus.services.loc;
location / {
proxy_pass http://nexus_docker/;
proxy_set_header Host $http_post;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
}
使用docker部署nginx,我使用docker login
成功登录。
我已经尝试了多个其他标志,例如 chunkin 等。但似乎没有任何效果。
这是因为您的服务器块在未设置时 client_max_body_size
的默认大小约为 1MB。
要解决此问题,您需要将以下行添加到您的服务器块:
# Unlimit large file uploads to avoid "413 Request Entity Too Large" error
client_max_body_size 0;
http://nginx.org/en/docs/http/ngx_http_core_module.html#client_max_body_size
事实证明,linux 发行版 运行 容器化的 nginx 服务器本身 运行 任何传入请求的 nginx 变体。
一旦我们在 OS 运行 的 nginx 配置文件中将 client_max_body_size
设置为 0,它就起作用了。
我已经部署了一个 Nexus OSS 的本地实例,它在 Nginx 反向代理之后到达。
在尝试将 docker 图像推送到在 Nexus 注册表上创建的存储库时,我遇到了
413 Request Entity Too Large
在推送中。
nginx.conf 文件看起来像这样:
http {
client_max_body_size 0;
upstream nexus_docker {
server nexus:1800;
}
server {
server_name nexus.services.loc;
location / {
proxy_pass http://nexus_docker/;
proxy_set_header Host $http_post;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
}
使用docker部署nginx,我使用docker login
成功登录。
我已经尝试了多个其他标志,例如 chunkin 等。但似乎没有任何效果。
这是因为您的服务器块在未设置时 client_max_body_size
的默认大小约为 1MB。
要解决此问题,您需要将以下行添加到您的服务器块:
# Unlimit large file uploads to avoid "413 Request Entity Too Large" error
client_max_body_size 0;
http://nginx.org/en/docs/http/ngx_http_core_module.html#client_max_body_size
事实证明,linux 发行版 运行 容器化的 nginx 服务器本身 运行 任何传入请求的 nginx 变体。
一旦我们在 OS 运行 的 nginx 配置文件中将 client_max_body_size
设置为 0,它就起作用了。