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 分布式构建

Jenkins作业无法在构建期间将整数参数传递给python脚本

jenkins slave节点服务标签

节点 webpack 挂起。如何调试?

在 Jenkins 构建期间动态添加 Android 项目依赖项

jenkins-slave的搭建和使用