2015-12-22 35 views
2

我在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 - 對碼頭工人不允許錯誤客戶端,而nginx日誌顯示以下錯誤

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

如何配置nginx,以便它ping通正確的回購地點?這是因爲上游服務器不包含回購?

UPDATE: 做以下修改

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

此錯誤消失後,但我得到的泊塢窗客戶

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

泊塢窗守護程序日誌顯示以下錯誤

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

這是否意味着它正在回購並需要許可推動圖像或是否意味着回購不存在?

+1

你'rewrite' v1 API會阻止請求得到儘可能的'/ v1'位置。客戶端呈現的URI究竟是什麼,以及您期望將其映射到哪個上游URL? –

+0

@user_mda我建議您更新以前的問題,而不是創建新的問題,這些問題都與同一問題有關。這使得很難提供幫助,並留下一些未解決的問題。 –

+0

@ drorb謝謝我回答了這些問題。 –

回答

0

未經授權錯誤的事實是,由於客戶端的版本泊塢窗不支持artifactory的配置爲

相關問題