Jenkins 服务在节点 js 构建期间完全停止,在 Ubuntu 上使用 nginx 设置获得 502 错误网关
Posted
技术标签:
【中文标题】Jenkins 服务在节点 js 构建期间完全停止,在 Ubuntu 上使用 nginx 设置获得 502 错误网关【英文标题】:Jenkins service stops completely during a node js build, getting a 502 bad gateway with an nginx setup on Ubuntu 【发布时间】:2016-03-09 11:12:14 【问题描述】:我已经在 Ubuntu VPS 上安装了 Jenkins,并且我正在构建 nodejs,它在某些时候会在 nginx 中触发 502 bad gateway 并且 Jenkins 服务停止。
构建似乎随机停止,有时是在安装 npm 模型时,有时是在使用 gulp 时等等。
我必须手动重启它(sudo service jenkins restart)。
这是构建的控制台输出:
+ jspm -v
0.16.15
Running against local jspm install.
[workspace] $ /bin/sh -xe /tmp/hudson1116016846111302145.sh
+ jspm install
Looking up npm:babel-core
Looking up npm:babel-runtime
Looking up npm:core-js
Updating registry cache...
ok Up to date - babel as npm:babel-core@^5.8.24 (5.8.34)
Looking up github:jspm/nodelibs-fs
Looking up github:jspm/nodelibs-path
Looking up github:jspm/nodelibs-process
Looking up github:systemjs/plugin-json
Looking up npm:process
Looking up npm:path-browserify
Looking up github:jspm/nodelibs-assert
Looking up npm:assert
Looking up npm:util
Looking up npm:inherits
Looking up github:jspm/nodelibs-util
ok Up to date - core-js as npm:core-js@^1.1.4 (1.2.6)
ok Up to date - babel-runtime as npm:babel-runtime@^5.8.24 (5.8.34)
ok Install tree has no forks.
ok Install complete.
[workspace] $ /bin/sh -xe /tmp/hudson4025483240884121474.sh
+ npm run build
> dxx-app@1.0.0 build /var/lib/jenkins/jobs/dxx-app/workspace
> gulp build
[15:31:11] Using gulpfile ~/jobs/dxx-app/workspace/gulpfile.js
[15:31:11] Starting 'build'...
[15:31:11] Starting 'clean'...
[15:31:11] Finished 'clean' after 19 ms
[15:31:11] Starting 'jspm-build'...
[15:31:11] Starting 'copy-assets'...
[15:31:11] Starting 'copy-fonts'...
[15:31:11] Starting 'less'...
[15:31:11] Finished 'copy-assets' after 226 ms
[15:31:12] Finished 'less' after 191 ms
[15:31:12] Finished 'copy-fonts' after 213 ms
502 Bad Gateway
nginx/1.4.6 (Ubuntu)
问题是,当 Jenkis 失败时,它不会在我的构建日志中记录任何内容,所以我不知道发生了什么。
我在网上看到你应该从nginx.conf增加超时,所以我在配置文件中添加了以下内容:
http
##
# Increased timeout to fix 502 bad gateway error
##
fastcgi_buffers 800 10006k;
fastcgi_buffer_size 1000k;
fastcgi_connect_timeout 999999;
fastcgi_send_timeout 999999;
fastcgi_read_timeout 999999;
Also, in nginx, sites-available, I have the following configuration:
server
listen 80;
server_name jenkins.domain.com;
ignore_invalid_headers off;
location /
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://127.0.0.1:8080;
proxy_connect_timeout 999999999999;
proxy_send_timeout 999999999999;
proxy_read_timeout 999999999999;
你有什么想法吗?
【问题讨论】:
你能解决你的问题吗? 我遇到了同样的问题。可能是您的服务器杀死了该进程,因为它使用了太多的 RAM? 有人对此有一些更新吗?现在我在反应项目中遇到了同样的问题。当 Jenkins 从“npm build”步骤开始时,它卡在那里,当我尝试刷新或单击 Jenkins 页面中的其他链接时,它向我显示来自 nginx 的 502 Bad Gateway 错误。我已经从其他来源尝试了许多包含超时和增加内存的东西.. @JoeLewis - 你有运气吗?我也有一个反应项目,并在“npm build”步骤中得到同样的东西......任何建议/输入将不胜感激:) 【参考方案1】:我在 Ubuntu 服务器上遇到了同样的问题。我不得不更改 JAVA_ARGS 的值
/etc/default/jenkins
到:
JAVA_ARGS="-Xmx128m"
在react build
进程停止抛出 502 网关错误消息之前。这是 Jenkins 2.263.4
【讨论】:
【参考方案2】:我在 Ubuntu 服务器中遇到了同样的问题。
我更新了 JAVA_ARGS
纳米/etc/default/jenkins
JAVA_ARGS="-Xmx256m"
它对我有用。
【讨论】:
【参考方案3】:如this thread 中所述,您可以增加/etc/default/jenkins
中的内存,您可以在其中调整以下标志
JAVA_ARGS="-Xmx256m" # Choose your desired memory instead of 256
【讨论】:
以上是关于Jenkins 服务在节点 js 构建期间完全停止,在 Ubuntu 上使用 nginx 设置获得 502 错误网关的主要内容,如果未能解决你的问题,请参考以下文章
Jenkins作业无法在构建期间将整数参数传递给python脚本