前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >上传Maven组件时不断重试&Broken pipe

上传Maven组件时不断重试&Broken pipe

原创
作者头像
码代码的陈同学
发布2018-06-03 19:15:05
3K0
发布2018-06-03 19:15:05
举报

上传Maven组件时不断重试&Broken pipe

问题记录,欢迎访问 陈同学博客原文

问题介绍

在云服务器(公网)上装了Nexus作为Maven私服,Nexus使用Nginx代理

在IDE中进行maven deploy时(注:测试时直接IDE deploy)不断重现以下日志:

org.apache.maven.wagon.providers.http.httpclient.impl.execchain.RetryExec execute
INFO: I/O exception (java.net.SocketException) caught when processing request to {}->http://repo.xxx.com:80: Broken pipe

上述日志出现一段时间后,最后报错:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.7:deploy (default-deploy) on project xdo: Failed to deploy artifacts: Could not transfer artifact com.hscf:xdo:jar:1.0.0 from/to dlrepo (http://repo.xxx.com/repository/dlrepo/): Protocol wrong type for socket -> [Help 1]

问题排查

  • 上传其他组件到该公网repo,可正常上传 => repo本身没问题
  • 上传当前组件到内网repo,可正常上传 => 组件没问题
  • 由此猜测是nginx代理问题,查看Nginx日志,发现:
101.231.252.114 - developer [31/May/2018:12:30:35 +0800] "PUT /repository/dlrepo/com/hscf/xdo/1.0.0/xdo-1.0.0.jar HTTP/1.1" 413 208 "-" "Apache-Maven/3.0.5 (Java 1.8.0_101; Mac OS X 10.11.6)"

非常熟悉的nginx 413 状态, 说明Nginx设置的request body太小。因为是新安装的Nginx,因此 client_max_body_size 是默认值1M。

可参考:nginx官网 client_max_body_size

查看当前组件,发现好几个依赖的jar包,约15M.

问题解决

配置request body的最大值为 100m即可,配置后重新deploy,上传成功.

server {
	...
    client_max_body_size 100m;
    location / {
    	...
    }
}

小结

已将client_max_body_size的设置补充到nginx安装和配置手册,避免下次出现类似问题

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 上传Maven组件时不断重试&Broken pipe
    • 问题介绍
      • 问题排查
        • 问题解决
          • 小结
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档