2013-08-29 49 views
4

我通过Nginx的运行GitLab 6.0.0和可以派生小的仓库,但是当我尝试到餐桌的大型仓库(2GB)我看到一个“502网关错误”页面大约在一分钟后502错误的网关从Nginx的大型GitLab叉

/var/log/nginx/gitlab_error.log显示:

2013/08/29 12:21:33 [error] 25098#0: *221 upstream prematurely closed connection while reading response header from upstream, 
    client: 12.34.56.78, 
    server: myserver, 
    request: "POST /mygroup/myproject/fork HTTP/1.1", 
    upstream: "http://unix:/home/git/gitlab/tmp/sockets/gitlab.socket:/mygroup/myproject/fork", 
    host: "myserver", 
    referrer: "http://myserver/mygroup/myproject/fork" 

回答

7

Issue 1527表明内存问题(和memory requirement in mentioned in the doc)。

它也可能是因为初始超时:

我发现也会出现此错误,因为麒麟的工人有时会需要33秒开始,他们配置在30秒后超时。

可以修改麒麟配置文件/home/git/gitlab/config/unicorn.rb

timeout 300 

在你的nginx的配置,你还可以添加:

proxy_connect_timeout 300; 
proxy_read_timeout 300; 

如果你有一个/etc/nginx/fastcgi_params文件与你的nginx的,你可以加:

fastcgi_connect_timeout 60; 
fastcgi_send_timeout 180; 
fastcgi_read_timeout 180; 
fastcgi_buffer_size 156 16k; 
fastcgi_buffers 256 16k; 
fastcgi_busy_buffers_size 256k; 
fastcgi_temp_file_write_size 256k; 
fastcgi_intercept_errors on; 
fastcgi_max_temp_file_size 0 

fastcgi_pass   unix:/tmp/fpm.sock; 

请注意,在502之后,在做出上述修复之后,在尝试再次访问gitlab之前清除浏览器缓存是个不错的主意。

+0

是的,我确实有一个的/ etc/nginx的/ fastcgi_params文件,但每行的格式为: “fastcgi_param PARAM_IN_CAPS $值”。上面列出的fastcgi行应该在unicorn.rb文件中吗? –

+1

@NicholasAlbion不,这些行不应该(在我的知识)在unicorn.rb文件。对我来说最重要的是'timeout 300'指令,给予Web服务器等待第一次查询期间发生的初始编译的时间。 – VonC

+0

我从独角兽切换到彪马,现在它工作得更好。 https://gist.github.com/tkretschmer-rb/5248495 –

0

我和你的导游一样。但是在fastcgi配置上稍有改动。

fastcgi_pass unix:/home/git/gitlab/tmp/sockets/gitlab.socket; 

非常感谢您的指导!

TWINQ78