캐디를 사용하는 자체 호스트 gitlab

캐디를 사용하는 자체 호스트 gitlab

gitlab을 설치하고 호스팅하려고 하는데 Nginx가 필요하고 끌어옵니다. Caddy를 사용하는 것을 제외하고는 괜찮을 것입니다. Caddy는 Nginx와 잘 작동하지 않으며 Nginx를 시작하려면 비활성화해야 합니다.

저는 Caddy를 매우 좋아합니다. 특히 내장된 파일 서버를 좋아하기 때문에 단순히 Nginx로 완전히 전환하는 것은 선택 사항이 아닙니다. 또한 비표준 포트에서 Nginx를 사용하기 위해 방화벽 리디렉션을 수행하는 데 관심이 없습니다.

nginx(예: Caddy) 없이 gitlab을 사용할 수 있는 방법이 있나요? 공식 문서는 없으며 온라인 포럼에서 마지막으로 시도한 것은 내 gitlab 설치를 완전히 망쳤고 내가 사용하지 않는 Apache에만 관련되었습니다.

내 시스템은 Ubuntu 20.04를 실행하는 전용 클라우드 서버입니다.

답변1

unixandria의 답변은 언제부터인지 정확합니다. 그 이후로 상황이 조금 바뀌었습니다.

이제 이 공식 섹션이 있습니다.GitLab 문서.

또한 GitLab 13.5에서는 Unix 소켓의 위치를 ​​변경했으므로 이제 Caddyfile에 다음이 표시됩니다.

git.example.com {
    reverse_proxy unix//var/opt/gitlab/gitlab-workhorse/sockets/socket
}

답변2

나는 마침내 그것을 알아 냈습니다.

GitLab은 포트가 아닌 Unix 소켓을 수신합니다. 운 좋게도 다음과 같이 Caddyfile의 소켓에 대한 프록시를 역방향으로 설정하도록 Caddy를 구성할 수 있습니다.

git.example.com {
     reverse_proxy * unix//var/opt/gitlab/gitlab-workhorse/socket
}

사용자가 그룹 에 caddy속해 있는지 확인 하고 그 반대의 경우도 마찬가지입니다.gitgitlab-www

/etc/gitlab/gitlab.rb에서 다음과 같이 구성되어 있는지 확인하세요.

nginx['enable'] = false
web_server['external_users'] = ['caddy']
web_server['username'] = 'gitlab-www'
web_server['group'] = 'gitlab-www' 
web_server['uid'] = nil
web_server['gid'] = nil
web_server['shell'] = '/bin/false' 
web_server['home'] = '/var/opt/gitlab/nginx'

그럼 해

sudo gitlab-ctl reconfigure
sudo systemctl restart caddy (or restart Caddy manually if you don't use systemd)

Ubuntu 20.04의 공식 캐디 및 GitLab-EE 패키지로만 테스트했으며 API를 통해 Caddy를 구성하지 않았지만 GitLab의 표준 설치에서는 작동합니다.

관련 정보