2013-08-29 63 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