Jak skonfigurować Gitlab-omnibus z niepowiązanym serwerem WWW?

11

zainstalować

  1. Zainstalowałem gitlabpakiet za pośrednictwem pakietu omnibus na debian 7(wersja 7.8.1-omnibus-1_amd64.deb);
  2. zmień ustawienia zgodnie z opisem w Korzystanie z niepowiązanego serwera WWW
  3. uruchom polecenie rekonfiguruj: sudo gitlab-ctl reconfigure(zakończ bez błędu).

Nginx

Nie mam nginxkonfiguracji dla tego gitlab, z wyjątkiem tego, co pakiet mógł utworzyć za pomocą następującego /etc/gitlab/gitlab.rbpliku:

external_url 'http://git.mydomain.fr'
web_server['external_users'] = ['www-data']
nginx['enable'] = false
ci_nginx['enable'] = false

Kłody

/var/log/nginx/gitlab_error.log

2015/02/28 14:29:16 [alert] 4137#0: *14738 768 worker_connections are not enough while connecting to upstream, client: x.x.128.194, server: git.mydomain.fr, request: "GET / HTTP/1.0", upstream
: "http://x.x.128.194:80/", host: "git.mydomain.fr"

/var/log/nginx/gitlab_access.log

W acces.log dostałem setki próśb /.

x.x.128.194 - - [28/Feb/2015:14:29:16 +0100] "GET / HTTP/1.0" 500 186 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:37.0) Gecko/20100101 Firefox/37.0"
x.x.128.194 - - [28/Feb/2015:14:29:16 +0100] "GET / HTTP/1.0" 500 186 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:37.0) Gecko/20100101 Firefox/37.0"
x.x.128.194 - - [28/Feb/2015:14:29:16 +0100] "GET / HTTP/1.0" 500 186 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:37.0) Gecko/20100101 Firefox/37.0"x.x.128.194 - - [28/Feb/2015:14:29:16 +0100] "GET / HTTP/1.0" 500 186 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:37.0) Gecko/20100101 Firefox/37.0"
x.x.128.194 - - [28/Feb/2015:14:29:16 +0100] "GET / HTTP/1.0" 500 186 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:37.0) Gecko/20100101 Firefox/37.0"

Pytanie

Podczas próby skontaktowania się z serwerem lokalnie za pomocą links2lub zewnętrznie wystąpił błąd 502 Bad Gateway.

  • czy muszę utworzyć niestandardową konfigurację nginx?
Édouard Lopez
źródło

Odpowiedzi:

9

Kontynuując eksplorację, znajduję /var/opt/gitlab/katalog i rozwiązuję to w następujący sposób:

sudo ln -s /var/opt/gitlab/nginx/conf/gitlab-http.conf /etc/nginx/sites-available/
sudo ln -s /etc/nginx/sites-{available,enabled}/gitlab-http.conf
sudo service nginx reload
Édouard Lopez
źródło
Chciałbym zaznaczyć to jako ̶a̶n̶s̶w̶e̶r̶.̶ to działa w miarę mogę powiedzieć, ̶ i nie ma lepszego praktyka / rozwiązanie daje 404 błędy nawet przy logowaniu. Czy to mój błąd?
GCon
1
Tak, to był mój błąd. Pracuje!
GCon,
1
Uwaga: to nie działa już całkowicie, ponieważ pojawi się unknown log format "gitlab_access" in /etc/nginx/sites-enabled/gitlab-http.conf:52błąd.
00500005
Poniżej naprawiono problem z formatem dziennika sudo ln -s /var/opt/gitlab/nginx/conf/nginx.conf /etc/nginx/sites-available/isudo ln -s /etc/nginx/sites-{available,enabled}/nginx.conf
solidgumby
2

Jeśli chodzi o gitlab 8, nie możemy już dowiązać symbolicznie do domyślnego gitlab-http.conf, ponieważ serwer WWW pakietu nie zostanie zainstalowany, gdy go ustawimy nginx['enable'] = false.

Wystarczy pobrać odpowiednie konfiguracje serwera WWW z repozytorium receptur GitLab i zmienić YOUR_SERVER_FQDNwybraną nazwę domeny.

Zobacz tutaj, aby uzyskać szczegółowe instrukcje dotyczące instalowania gitlab przy użyciu niepakowanego serwera WWW.

Euph0rix
źródło
1

Aby upewnić się, że użytkownik jest dostępny, należy dodać użytkownika Nginx (zwykle www-data lub nginx) do grupy gitlab-www:

sudo usermod -aG gitlab-www nginx

lub

sudo usermod -aG gitlab-www www-data
Mohsen Beiranvand
źródło
1

Jeśli dałeś link do gitlab-http.conf, a następnie uzyskałeś:

nieznany format dziennika „gitlab_access” w /etc/nginx/sites-enabled/gitlab-http.conf

Po prostu dodaj log_formatdyrektywy z /var/opt/gitlab/nginx/conf/nginx.confdo swojej globalnej konfiguracji nginx:

http {
  ...
  log_format gitlab_access '$remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent"';
  log_format gitlab_ci_access '$remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent"';
  log_format gitlab_mattermost_access '$remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent"';
  ...
}
Frederic Seiler
źródło