Рейтинг:0

Расположение NGINX переписано для Gitlab

флаг pk

Я пытаюсь заставить Gitlab работать за Nginx. мои конфиги:

Нгинкс:

восходящая gitlab-рабочая лошадка {
    сервер unix:/var/opt/gitlab/gitlab-workhorse/sockets/socket fail_timeout=0;
}

местоположение /gitlab/ {
       переписать ^/gitlab(/.*)$ $1 break;
       client_max_body_size 0;
       сжатие выключено;
       proxy_read_timeout 300;
       proxy_connect_timeout 300;
       прокси_перенаправление выключено;
       прокси_http_версия 1.1;
       proxy_set_header Хост $http_host;
       proxy_set_header X-Real-IP $remote_addr;
       proxy_set_header X-Forwarded-Ssl включен;
       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
       proxy_set_header X-Forwarded-Proto $ схема;
       proxy_pass http://gitlab-workhorse;
}

/etc/gitlab/gitlab.rb:

external_url "https://myhostname.com/gitlab"
web_server['внешние_пользователи'] = ['www-данные']
nginx['включить'] = ложь
gitlab_workhorse['включить'] = правда
gitlab_workhorse['listen_network'] = "Unix"
gitlab_workhorse['listen_addr'] = "/var/opt/gitlab/gitlab-workhorse/сокеты/сокет"

при запросе на myhost.com/gitlab/users/sign_in я получаю "/users/sign_in" не найден

если я изменю конфигурацию gitlab

external_url "https://myhostname.com/"

(без /гитлаб путь в конце) он начинает работать, но всегда перенаправляет на / сервера вместо /gitlab

Рейтинг:0
флаг gr

Поскольку вы уже настроили GitLab для использования префикса URI /гитлаб с

external_url "https://myhostname.com/gitlab"

(это единственный правильный способ разместить что-то большее, чем SPA с префиксом URI), вам не нужно удалять это /гитлаб префикс из URI запроса перед передачей запроса на серверную часть GitLab. Удалите это переписать ^/gitlab(/.*)$ $1 break; строка из вашего конфига nginx. С чего вы взяли, что он вообще нужен?

Stefan NovakDev avatar
флаг pk
очевидно, gitlab не поддерживает относительные URL-адреса
Ivan Shatsky avatar
флаг gr
Что заставляет вас думать так? В документации [указано] (https://docs.gitlab.com/omnibus/settings/configuration.html#configure-a-relative-url-for-gitlab) ровно наоборот. Вы тестировали свою среду без директивы `rewrite`, используя `external_url "https://myhostname.com/gitlab"`?
Stefan NovakDev avatar
флаг pk
да спасибо реально помогло!

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.