ReserveProxy 를 이용해서 gitlab을 운영하면, gitalb site 안에 있는 링크가 깨지는 경우가 있습니다. 이를 해결하기 위해서는 아래 파일에 dns domain 주소로 변경하면 됩니다.

아래와 같이 시스템이 구성이 되어 있는 상태입니다.

flowchart TD
apache(gitlab.xxxxxx.com) --proxy--> gitlab(10.2.2.2:8000)

설정

apache 설정

<VirtualHost *:443>
    ServerName gitlab.xxxxxxxx.com

    ProxyRequests Off       # Reserve Proxy Mode
    ProxyPreserveHost On
    <Proxy *>
        Order deny,allow
        Allow from all
    </Proxy>

    ProxyPass / https://192.168.20.100/ nocanon
    ProxyPassReverse / https://192.168.20.100/

    <Location />
        Order Deny,Allow
        Deny from all
        Allow from 162.21
    </Location>

    AllowEncodedSlashes NoDecode
    ErrorLog logs/gitlab_error_log
    TransferLog logs/gitlab_access_log
    LogLevel warn

    SSLEngine on
    SSLProxyEngine On

    SSLCertificateFile "/etc/pki/tls/certs/xxxxxxxxxx.com.crt"
    SSLCertificateKeyFile "/etc/pki/tls/private/xxxxxxxxxx.com.key"
    SSLCertificateChainFile "/etc/pki/tls/RootChain/chain_all_ssl.crt"
    SSLCACertificateFile "/etc/pki/tls/RootChain/chain_ssl.crt"


    CustomLog "/etc/httpd/logs/gitlab_" \
              "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
</VirtualHost>

도메인주소로 proxy 해서 사용해서 사용할 것이라 ProxyPass 부분을 https 로 설정해 주었습니다.
필수옵션:

  1. nocanon
  2. AllowEncodedSlashesgitlab.rb 설정
external_url 'https://gitlab.domain.net
puma['enable'] = true
puma['ha'] = false
puma['worker_timeout'] = 60
puma['worker_processes'] = 2
puma['min_threads'] = 1
puma['max_threads'] = 4
puma['listen'] = '127.0.0.1'
puma['port'] = 8001
puma['socket'] = '/var/opt/gitlab/gitlab-rails/sockets/gitlab.socket'
puma['somaxconn'] = 1024
puma['pidfile'] = '/opt/gitlab/var/puma/puma.pid'
puma['state_path'] = '/opt/gitlab/var/puma/puma.state'
puma['log_directory'] = "/var/log/gitlab/puma"
puma['exporter_enabled'] = false
puma['exporter_address'] = "127.0.0.1"
puma['exporter_port'] = 8083
letsencrypt['enable'] = false
  • external_url 에 domain 주소로 설정을 하면 letencrypt 기능이 자동으로 동작하는 것 같다. 그래서, 옵션으로 letsencrypt 부분을 false 처리 해 주었습니다.

Optional

위에 설정으로 gitlab 에 접속을 할 수 없을 경우에 아래와 같은 옵션을 사용할 수 있습니다.

1. /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml 에 있는 정보를 변경

nginx --> gitlab 으로 proxy로 연결해서 사용하게 되면, 링크가 깨지는 현상이 발생한다. 이를 해결하기 위해서 아래와 같은 설정으로 임시 해결할 수 있다. 단, 다른 기능이 또 안될 수 있다. (이 부분은 아직 해결을 못하고 있다.) 예를 들어 gitlab-runner 에 대한 설정을 하려고 들어가는 화면에서 링크가 깨진다.

production: base
  #
  # 1. GitLab app settings
  # ==========================

  ## GitLab settings
  gitlab:
    ## Web server settings (note: host is the FQDN, do not include http://)
    host: gitlab.xxxxxxxxxxxxx.com
    port: 443
    https: false

2. gitlab restart

gitlab-ctl restart
반응형

'개발' 카테고리의 다른 글

Mac이 AI PC로서 최고인 이유  (0) 2024.02.03
2024년 프로그래밍 랭킹  (1) 2024.01.02
elixir vs rust 비교  (1) 2023.12.27
vscode dev containers  (1) 2023.12.22
svn to git 마이그레이션 (맥)  (0) 2023.12.13

+ Recent posts