jenkins在使用maven部署到nginx+tomcat服务器时出现504错误

环境:jenkins+maven+nginx+tomcat

在执行jenkins job发布项目到远程服务器,服务器使用nginx+tomcat。默认使用80端口,通过nginx转发请求。在执行tomcat:redeploy时,出现下面的错误:

[ERROR] Failed toexecute goal org.codehaus.mojo:tomcat-maven-plugin:1.1:redeploy (default-cli)on project sgt-node: Cannot invoke Tomcat manager: Server returned HTTPresponse code: 504 for URL: http://host/manager/text/deploy?path=%2Fnode&war=&update=true-> [Help 1]
[ERROR]
[ERROR] To see thefull stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Mavenusing the -X switch to enable full debug logging.
[ERROR]
[ERROR] For moreinformation about the errors and possible solutions, please read the followingarticles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException

但项目又是部署成功了的,只是jenkins的job执行失败。刚开始一直以为是tomcat的连接超时了,设置connectionTimeout为-1时(keepAliveTimeout默认使用connectionTimeout的值),即永不超时,错误依旧。那是不是nginx连接的超时了呢?所以设置了nginx的keepalive_timeout参数,但还是没有效果。

后来经过多番查找资料(对nginx不熟),查看到nginx的错误日志(error_log),发现下面错误:

2014/05/16 11:23:03[error] 4789#0: *36073 upstream timed out (110: Connection timed out) whilereading response header from upstream, client: 172.16.77.102, server:172.16.73.53, request: "PUT/manager/text/deploy?path=%2Fnode&war=&update=true HTTP/1.0",upstream:"http://127.0.0.1:8080/manager/text/deploy?path=%2Fnode&war=&update=true",host: "host"

这是nginx连接超时,而由于使用的是80端口,走的是nginx代理转发的请求,原来,在nginx转发请求后,等待读取响应的时间超时的情况下,nginx直接返回了一个504 Gateway Time-out错误,所以会出现部署成功,却返回错误的情况。

知道了原因后就好办了,查了一下资料,设置nginx代理的读取超时时间参数:

proxy_read_timeout 600s;

再试,果然成功了。问题解决。

另外,如果不使用nginx代理转发请求,也可避免这个问题,直接使用http://host:port/manager/text,只要不使用nginx默认的80端口即可。

jenkins在使用maven部署到nginx+tomcat服务器时出现504错误

时间: 2024-12-18 02:21:51

jenkins在使用maven部署到nginx+tomcat服务器时出现504错误的相关文章

Eclipse部署Maven web项目到tomcat服务器时,没有将lib下的jar复制过去的解决办法

我们在做web开发是,经常都要在eclipse中搭建web服务器,并将开发中的web项目部署到web服务器进行调试,在此,我选择的是tomcat服务器.之前部署web项目到tomcat进行启动调试都很正常,今天突然出现无法启动情况,启动过程报如下错误: java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener at org.apache.catalina.loader.Webap

eclipse部署maven web项目到tomcat服务器时,没有将lib、web.xml复制过去的解决办法

我这几天在写项目的时候发现自己以前的项目能够访问,隔一段时间写的这个项目却不能够访问,没有发现代码的逻辑错,但是就是访问不了jsp页面,项目一发布就是出现404错误,后来发现原来是发布到tomcat上面的项目上面没有发布index.jsp跟web.xml文件,设置连里面的lib包也没有发布上去. 下面是我在找错误的详细过程,记录下来以防自己以后忘记. 第一步:是你要找到控制台中Servers,然后双击打开它,查看里面的信息. 第二步:配置Server中发布项目的安装目录 后来我发现我发布项目到t

Nginx+Tomcat服务器负载均衡实践方案

1.    为何选择Nginx+Tomcat做负载均衡? 1.1. Nginx是什么? Nginx(发音同 engine x)是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行.由俄罗斯的程序设计师Igor Sysoev所开发,供俄国大型的入口网站及搜索引擎Rambler(俄文:Рамблер)使用.其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户

Linux--centos6.5 安装nginx+tomcat 服务器整合

Linux*centos6.5 安装nginx+tomcat 服务器整合 前言:研究了2天也出现过很多错误,网上的资料很多但是都不是很全,我是拼凑出来在结合自己的理解配置出来的,怕以后忘了记载在这里,如有不对的地方还请包涵. 一.首先,你要安装jdk(我的版本问1.8)自己到官网下载(我是root的权限). 我的服务器环境为---centos 6.5 64 [[email protected] ROOT]# rpm -ivh jdk-8u60-linux-x64.rpm [[email prot

IDEA启动Tomcat服务器时某些端口(如1099端口)被占用的解决办法

启动Tomcat服务器时,出现1099端口被其它进程占用了解决办法: 1.找出占用1099端口的进程,进入windows命令,查看什么进程占用了1099端口,使用命令:netstat -aon|findstr 1099 找出占用1099端口的进程 2.然后关闭占用该端口的进程:taskkill -f -pid 3756 这样就可以正常启动Tomcat了.问题顺利解决了.--------------------- 作者:muyu1102 来源:CSDN 原文:https://blog.csdn.n

tomcat 安装配置部署到nginx+tomcat+https

目录 1 Tomcat简介 2.下载并安装Tomcat服务 2.2 部署java环境 2.3 安装Tomcat 2.4 Tomcat目录介绍 (关注点 bin conf logs webapps) 2.5 启动Tomcat 3.2 Tomcat管理 8 搭建jpress--java 版本的wordpress tomcat 配置文件 conf/server.xml tomcat 自定义网站目录 Tomcat多实例 (多个虚拟主机) tomcat反向代理集群 tomcat监控 zabbix监控 ng

nginx+tomcat导致request取数错误问题

Nginx+Tomcat在中小规模的WEB项目部署中非常常见,但对于新手来说经常忽略一些配置,导致很多项目访问问题(鄙人刚踩过不久,所以记录下) 我碰到的问题就是JSP中取得地址和端口号用了request.getServerName()和request.getServerPort()俩个方法 导致很多页面访问403被拒绝~ 其实解决方法很简单,在这分享下: Nginx配置加上这个: proxy_set_header       Host $host;   //解决getRequestURL.ge

nginx + tomcat 架构中,error_page错误页面的设置

如果是单独的nginx设置404或者403等错误页面时,只需要如下即可: fastcgi_intercept_errors on:       error_page 404  /404.html: 但是,如果nginx为后台tomcat做代理时,上述方法就搞不定了,那要如何,如下: proxy_intercept_errors on:   #有意思的是,这个开关默认是关闭的,所以得配置打开 error_page 404 /404.html: nginx为tomcat做代理时,404或者403等错

MyEclipse应用服务器之部署项目到Tomcat服务器

1. 导入示例Web项目 (1)下载示例Web项目. (2)选择File>Import. (3)展开General,然后在工作区中选择现有项目,并单击下一步. 导入现有项目 (4)选择Select archive file选项,浏览下载的zip文件,并单击Finish. 选择一个归档文件导入 (5)根据向导迁移项目. 2. 部署Web项目 现在您有一个Web项目需要工作,可以将它部署到Tomcat上,同时可以开始开发它的实时性. (1)在服务器视图中右键单击MyEclipse Tomcat服务器