В настоящее время я пытаюсь использовать мой Gitlab за обратным прокси-сервером nginx, потому что я использую некоторые другие инструменты на той же машине. Так что это должно работать следующим образом: client <-> reverse_proxy <-> Gitlab. Я хочу настроить Gitlab на прослушивание порта 9080 для HTTP и 9081 для HTTPS на localhost (для получения перенаправленных данных от моего обратного прокси-сервера). Но у меня есть несколько проблем при настройке этого.
- В комплекте сервер nginx всегда использует порт 9081 для HTTP и 9080 для HTTPS. Но независимо от того, какую конфигурацию я пробовал, результат всегда одинаков. За исключением случаев использования external_url с https и портом 9081, связанный nginx будет использовать порт 9081 для HTTP и HTTPS.
- Для перенаправления 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";
...
}