LINUX.ORG.RU
ФорумAdmin

Конфигурация nginx для работы с Gitlab

 , ,


0

1

Имеется Gitlab EE (8.15 omnibus). В документации и репозитории имеются примеры конфигов nginx для работы с Gitlab (документация, репо)

Приведу второй пример, как более короткий:


    upstream gitlab-workhorse {
        server unix:/var/opt/gitlab/gitlab-workhorse/socket;
    }

    server {
        listen 0.0.0.0:80 default_server;
        server_name git.mydomain.ru
        server_tokens off;
        root /opt/gitlab/embedded/service/gitlab-rails/public;

        access_log  /var/log/nginx/gitlab.access.log;
        error_log   /var/log/nginx/gitlab.error.log;

        location / {
            client_max_body_size 0;
            gzip off;
            proxy_read_timeout      300;
            proxy_connect_timeout   300;
            proxy_redirect          off;
            proxy_http_version 1.1;
            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_pass http://gitlab-workhorse;
        }
    }


nginx нельзя перезапустить ни с первым, ни со вторым. тест конфига дает результат:

     $ sudo nginx -t
     nginx: [emerg] a duplicate default server for 0.0.0.0:80 in /etc/nginx/sites-enabled/gitlab.conf:6
     nginx: configuration file /etc/nginx/nginx.conf test failed

Но, как понимаю, это не показатель, так как конфиг работает вместе с основным.

Как настроить nginx для работы с Gitlab?



Последнее исправление: kukuruku11 (всего исправлений: 1)

Почитайте nginx'овскую документацию о том, где должны быть описаны апстримы и как идет инклюд конфигов, там все подробно расписано. Если надо чтоб кто-то написал конфиг за вас - боюсь с этим придется отправиться в раздел форума /job.

alozovskoy ★★★★★
()
Ответ на: комментарий от expelled

почему тогда конфиги в доках приведены именн так?

kukuruku11
() автор топика

У вас в конфиге nginx есть несколько блоков server. Из них default_server может быть только один, а вы указали несколько.

l0stparadise ★★★★★
()
Последнее исправление: l0stparadise (всего исправлений: 1)
Ответ на: комментарий от kukuruku11

почему конфиги приведены именно так

Потому, что это пример? Как бы под реальную задачу в конфиги/код почти всегда вносятся изменения с учетом особенностей уже работающей конфигурации. Естественно, что если у тебя уже есть default server для 0.0.0.0:80, то нефиг пихать ещё один. Так что тут вопрос скорее "как настраивать сервер не методом copy-paste and hujak in production?"

WereFox ★☆
()
Ответ на: комментарий от WereFox

copy-paste and hujak in production

вы прям мою парадигму разрушили

kukuruku11
() автор топика
Ответ на: комментарий от l0stparadise

спасибо за совет. мне просто доки нужно еще почитать

kukuruku11
() автор топика

Ответ нашелся в документации, нужно было внимательней читать.

В моим случае я использовал nginx уже установленный в системе, раздел документации для этого случая приводит следующий конфиг:

Директивы passenger_* могут быть не понятны nginx, необходимо установить Passenger и включить passenger nginx module.

GitLab запускается и предлагает ввести пароль root-пользователя.

kukuruku11
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.