nginx нет такого файла или каталога


У меня есть следующая конфигурация в nginx

upstream artifactory_lb {
    server artifactoryserver.com:8081;
    server otherartifactoryserver.com:8081 backup;
}

Другая конфигурация

rewrite ^/(v1|v2)/(.*) /api/docker/image-repo/$1/$2;
client_max_body_size 0;
chunked_transfer_encoding on;

location /v1 {
    allow all;
    proxy_read_timeout  900;
    proxy_pass_header   Server;
    proxy_cookie_path   ~*^/.* /;
    proxy_set_header    X-Artifactory-Override-Base-Url $http_x_forwarded_proto://$host;
    proxy_set_header    X-Forwarded-Port  $server_port;
    proxy_set_header    X-Forwarded-Proto $http_x_forwarded_proto;
    proxy_set_header    Host              $http_host;
    proxy_set_header    X-Forwarded-For   $proxy_add_x_forwarded_for;
    proxy_pass          http://artifactory_lb; 
}

Когда я пытаюсь протолкнуть изображение, я получаю 405-недопустимую ошибку на клиенте docker, в то время как журналы nginx показывают следующую ошибку

/usr/share/nginx/html/api/docker/image-repo/v1/_ping" failed (2: No such file or directory)

Как настроить nginx так, чтобы он пинговал правильное местоположение РЕПО? Связано ли это с тем, что вышестоящий сервер не содержит РЕПО?

Обновление: После внесения следующих изменений

location /v1 --> location /
proxy_pass http://artifactoryserver.com:8081/artifactory/

Эта ошибка исчезает, но я получаю следующую ошибку на клиент docker

Sending image list
Error: Status 403 trying to push repository ubuntu: "{"error": "Unauthorized updating repository images"}"

Журналы демона docker показывают

POST /v1.21/images/host:port/ubuntu/push?tag=

Означает ли это, что он попадает в репо и нуждается в разрешениях для перемещения изображений, или это означает, что РЕПО не существует??

1 2

1 ответ:

Несанкционированная ошибка была вызвана тем, что версия docker клиента не поддерживала api v1, на который был настроен artifactory