Назад | Перейти на главную страницу

Цикл перенаправления Gitlab при запросе archive.zip

Я установил экземпляр Gitlab, используя nginx в качестве веб-сервера на машине Arch. Шаги, которые я предпринял для этого, указаны на Arch Wiki. В настоящее время все работает, кроме кнопки загрузки archive.zip на каждой странице проекта: я попадаю в бесконечный цикл перенаправления, когда нажимаю эту кнопку. Я не использую https или что-то нестандартное, прошедшее нестандартную установку, и ни один из журналов, похоже, не дает мне полезных способов устранения неполадок.

production.log повторяет:

Started GET "/tdubois/Wafer-CPC/repository/archive.zip" for 131.170.94.23 at 2015-09-02 14:11:31 +1000
Processing by Projects::RepositoriesController#archive as ZIP
Parameters: {"namespace_id"=>"tdubois", "project_id"=>"Wafer-CPC"}
Redirected to http://domain.edu.au/tdubois/Wafer-CPC/repository/archive.zip
Completed 302 Found in 5020ms (ActiveRecord: 2.0ms)

sidekiq.log повторяет:

2015-09-02T04:11:31.059Z 31495 TID-1n7fko RepositoryArchiveWorker JID-60d166f32ebd28ba6c591547 INFO: start
2015-09-02T04:11:31.064Z 31495 TID-1n7fko RepositoryArchiveWorker JID-60d166f32ebd28ba6c591547 INFO: done: 0.005 sec

Журнал доступа nginx повторяется:

131.170.94.23 - - [02/Sep/2015:14:09:26 +1000] "GET /tdubois/Wafer-CPC/repository/archive.zip HTTP/1.1" 302 150 "http://domain.edu.au/tdubois/Wafer-CPC" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.157 Safari/537.36"

Есть идеи о том, что здесь происходит? Я не совсем уверен, какой файл конфигурации вызывает перенаправление, поэтому я поместил свои файлы ngnix ниже, но если вы думаете, что это проблема в каком-то файле gitlab, я отправлю его в редакцию. Спасибо!

nginx.conf:

worker_processes  1;

events {
     worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;

    include sites-enabled/*;
}

сайты с поддержкой / gitlab:

upstream gitlab {
  server unix:/usr/share/webapps/gitlab/tmp/sockets/gitlab.socket fail_timeout=0;
}

server {
  listen 0.0.0.0:80;
  listen [::]:80;
  server_name domain.edu.au; 
  server_tokens off; ## Don't show the nginx version number, a security best practice
  root /usr/share/webapps/gitlab/public;

  client_max_body_size 20m;

  access_log  /var/log/nginx/gitlab_access.log;
  error_log   /var/log/nginx/gitlab_error.log;

  location / {
    ## Serve static files from defined root folder.
    ## @gitlab is a named location for the upstream fallback, see below.
    try_files $uri $uri/index.html $uri.html @gitlab;
  }

  ## We route uploads through GitLab to prevent XSS and enforce access control.
  location /uploads/ {
    ## https://github.com/gitlabhq/gitlabhq/issues/694
    ## Some requests take more than 30 seconds.
    proxy_read_timeout      300;
    proxy_connect_timeout   300;
    proxy_redirect          off;

    proxy_set_header    Host                $http_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_set_header    X-Frame-Options     SAMEORIGIN;

    proxy_pass http://localhost:8080;
  }

  ## If a file, which is not found in the root folder is requested,
  ## then the proxy passes the request to the upsteam (gitlab unicorn).
  location @gitlab {
    ## https://github.com/gitlabhq/gitlabhq/issues/694
    ## Some requests take more than 30 seconds.
    proxy_read_timeout      300;
    proxy_connect_timeout   300;
    proxy_redirect          off;

    proxy_set_header    Host                $http_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_set_header    X-Frame-Options     SAMEORIGIN;

    proxy_pass http://localhost:8080;
  }

  location ~ ^/(assets)/ {
    root /usr/share/webapps/gitlab/public;
    gzip_static on; # to serve pre-gzipped version
    expires max;
    add_header Cache-Control public;
  }

  error_page 502 /502.html;
}

РЕДАКТИРОВАТЬ:

Согласно комментариям Майка: Sidekiq запускается системой systemd, можно увидеть полный сценарий Вот. Команда запуска:

/usr/bin/bundle exec "sidekiq -q post_receive -q mailer -q system_hook -q project_web_hook -q gitlab_shell -q common -q default -q archive_repo -e production -L /var/log/gitlab/sidekiq.log >> /var/log/gitlab/sidekiq.log 2>&1"

Я не уверен, что здесь должны быть имена очередей. Вот информация о текущей версии:

System information
System:
Current User:   gitlab
Using RVM:      no
Ruby Version:   2.2.3p173
Gem Version:    2.4.5.1
Bundler Version:1.10.6
Rake Version:   10.4.2
Sidekiq Version:3.3.0

GitLab information
Version:        7.13.5
Revision:       f48c2ee
Directory:      /usr/share/webapps/gitlab
DB Adapter:     mysql2
URL:            http://domain.edu.au
HTTP Clone URL: http://domain.edu.au/some-project.git
SSH Clone URL:  gitlab@domain.edu.au:some-project.git
Using LDAP:     no
Using Omniauth: no

GitLab Shell
Version:        2.6.3
Repositories:   /var/lib/gitlab/repositories/
Hooks:          /usr/share/webapps/gitlab-shell/hooks/
Git:            /usr/bin/git