Gitlab: HTTP для обратного прокси - PullRequest
0 голосов
/ 03 ноября 2019

В настоящее время я пытаюсь использовать мой Gitlab за обратным прокси-сервером nginx, потому что я использую некоторые другие инструменты на той же машине. Так что это должно работать следующим образом: client <-> reverse_proxy <-> Gitlab. Я хочу настроить Gitlab на прослушивание порта 9080 для HTTP и 9081 для HTTPS на localhost (для получения перенаправленных данных от моего обратного прокси-сервера). Но у меня есть несколько проблем при настройке этого.

  1. В комплекте сервер nginx всегда использует порт 9081 для HTTP и 9080 для HTTPS. Но независимо от того, какую конфигурацию я пробовал, результат всегда одинаков. За исключением случаев использования external_url с https и портом 9081, связанный nginx будет использовать порт 9081 для HTTP и HTTPS.
  2. Для перенаправления HTTPS связанный nginx всегда использует порт из атрибута external_url, настроенный в Gitlab. рб, но он должен использовать порт, настроенный в атрибуте 'redirect_http_to_https_port'.

Для меня полученный файл конфигурации не имеет смысла, но, возможно, я неправильно понял документацию. Итак, вот изменения, которые я внес в Gitlab.rb и полученный gitlab-http.conf из / var / opt / gitlab / nginx / conf /

Соответствующие изменения в Gitlab.rb:

  • external_url 'http://localhost:9080/subdir'
  • web_server [' external_users '] = [' nginx]
  • nginx ['enable'] = true
  • nginx ['redirect_http_to_https'] = true
  • nginx ['redirect_http_to_https_port'] = 9081
  • nginx ['ssl_certificate'] = "path_to_cert_file"
  • nginx ['ssl_certificate_key' ]_key 'path1027 *
  • nginx ['listen_port'] = 9080
  • nginx ['listen_https'] = 9081
  • nginx [http2_enables '] = false
  • letsencrypt [' enable'] = false

Соответствующие части gitlab-http.conf:

server {
  listen *:9081;

  server_name localhost;
  server_tokens off; ## Don't show the nginx version number, a security best practice


  location / {
    return 301 https://localhost:9080$request_uri;
  }

...
}

server {
  listen *:9080 ssl;


  server_name localhost;
  server_tokens off; ## Don't show the nginx version number, a security best practice

  ## Increase this if you want to upload large attachments
  ## Or if you want to accept large git objects over http
  client_max_body_size 0;

  ## Strong SSL Security
  ## https://raymii.org/s/tutorials/Strong_SSL_Security_On_nginx.html & https://cipherli.st/
  ssl_certificate "path_to_cert_file";
  ssl_certificate_key "path_to_key_file";

...
}
...