泊坞窗推以“无法读取流下降:意外的EOF读取插座”状态‘400’
我们对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;
}
}
调查后,我们发现这个问题是由ELB配置引起。 ELB空闲超时值默认设置为60秒,并且artifactory在此时间内无法发回响应,因此ELB正在关闭连接。增加空闲超时值可解决问题。
Artifactory日志错误并不清楚超时,它是更通用的,这让我们思考很多方面。
谢谢。