Docker push nexus private repo fail, 413 Запросить объект слишком велик - PullRequest
0 голосов
/ 07 января 2019

Я развернул первый экземпляр Nexus OSS, который находится за обратным прокси-сервером Nginx.

При любой попытке отправить образ докера в репозиторий, созданный в реестре 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;
        } 
    } 
} 

nginx развернут с помощью docker, и я успешно вошел в него, используя docker login. Я пробовал несколько других флагов, таких как chunkin и тому подобное. Но, похоже, ничего не работает.

Ответы [ 2 ]

0 голосов
/ 20 января 2019

Как оказалось, в дистрибутиве linux, на котором работал зараженный сервер nginx, сам выполнялся вариант nginx для любого входящего запроса.

Как только мы установили client_max_body_size на 0 на уровне ОС, это сработало.

0 голосов
/ 07 января 2019

Это связано с тем, что ваш блок сервера имеет значение по умолчанию для client_max_body_size размером около 1 МБ, когда не установлено.

Чтобы решить эту проблему, вам нужно добавить следующую строку в свой блок сервера:

# 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

...