2017-10-16 185 views
0

我們對AWS的artifactory的測試設置,其中包括AWS ELB和一個EC2實例作爲artifactory的服務器我們的設置是搬運工基於JFROG artifactory泊塢窗推以「無法讀取流下降:意外的EOF讀取插座」狀態‘400’

我們在推送特定圖像(「平臺圖像」)的同時面臨「在套接字上讀取意外的EOF」錯誤,但我們能夠將相同的圖像推送到我們擁有的生產環境中,這兩個環境之間的是,我們正在使用AWS ELB和分域碼頭工人類型註冊處的測試環境。在我們目前的督促我們沒有ELB和碼頭工人註冊表類型的端口綁定。

2017年10月16日06:48:37967 [HTTP-NIO-8081-EXEC-9] [ERROR](oaacrArtifactoryService:282) - 無法讀取流:意外的插座 org.jfrog EOF讀取。 storage.binstore.common.ClientInputStreamException:無法讀取流:在org.jfrog.storage.binstore.common.ClientStream.read(ClientStream.java:36)〜[binary-store-core-1.0]上的套接字 上讀取意外的EOF .2.jar:NA] 在org.apache.commons.io.IOUtils.copyLarge(IOUtils.java:1792)〜[公地-IO-2.4.jar:2.4] 在org.apache.commons.io.IOUtils .copyLarge(IOUtils.java:1769)〜[commons-io-2.4.jar:2.4] at org.apache.commons.io.IOUtils.copy(IOUtils.java:1744)〜[commons-io-2.4.jar :2.4]

2017-10-16 06:48:37,968 [http-nio-8081-exec-9] [警告](ojrdvrhDockerV2LocalRepoHandler:170) - 錯誤上傳blob'platform-image/_uploads/e205ae95-2e43-48c2-942e-a5aea659575c''status'400 '和信息:'讀取流失敗:在插座上讀取意外的EOF'

請檢查並讓我們知道這裏可能是什麼問題。對於所有圖像我們都沒有面對這個問題。但是和有問題的相同的形象,能推進推動實例。

注意:同樣的圖像最初一次工作,但當我們嘗試幾天後,它不工作。

所以我們懷疑這可能是我們的配置。如果您需要我們更多的細節,請告訴我們。

圖片名稱:平臺圖片 尺寸:15.2 GB。

我們的集羣細節: AWS經典ELB:1 EC2實例(i3.2xlarge):1

Nginx的配置:

## server configuration 
server { 
    listen 443 ssl; 
    listen 80 ; 
    server_name ~(?<repo>.+)\.domain.com domain.com; 

    if ($http_x_forwarded_proto = '') { 
     set $http_x_forwarded_proto $scheme; 
    } 
    ## Application specific logs 
    access_log /var/log/nginx/docker-access.log; 
    error_log /var/log/nginx/docker-error.log; 
    rewrite ^/$ /artifactory/webapp/ redirect; 
    rewrite ^/artifactory/?(/webapp)?$ /artifactory/webapp/ redirect; 
    rewrite ^/(v1|v2)/(.*) /artifactory/api/docker/$repo/$1/$2; 
    chunked_transfer_encoding on; 
    client_max_body_size 0; 
    location /artifactory/ { 
    proxy_read_timeout 3200; 
    proxy_pass_header Server; 
    proxy_cookie_path ~*^/.* /; 
    proxy_pass   http://localhost:8081/artifactory/; 
    proxy_set_header X-Artifactory-Override-Base-Url $http_x_forwarded_proto://$host:$server_port/artifactory; 
    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; 
    } 
} 

回答

0

調查後,我們發現這個問題是由ELB配置引起。 ELB空閒超時值默認設置爲60秒,並且artifactory在此時間內無法發回響應,因此ELB正在關閉連接。增加空閒超時值可解決問題。

Artifactory日誌錯誤並不清楚超時,它是更通用的,這讓我們思考很多方面。

謝謝。