AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 1030523
Accepted
unixandria
unixandria
Asked: 2020-08-18 17:26:13 +0800 CST2020-08-18 17:26:13 +0800 CST 2020-08-18 17:26:13 +0800 CST

使用 caddy 自托管 gitlab

  • 772

我正在尝试安装和托管 gitlab,但它需要并引入 Nginx。这很好,除了我使用 Caddy 并且 Caddy 不能很好地与 Nginx 配合使用,并且必须禁用 Nginx 才能启动。

我非常喜欢 Caddy,尤其是内置的文件服务器,所以完全切换到 Nginx 不是一种选择。我也没有兴趣尝试进行防火墙重定向以尝试在非标准端口上使用 Nginx。

有没有办法在没有 nginx 的情况下使用 gitlab,例如 Caddy?没有官方文档,我从在线论坛尝试的最后一件事完全破坏了我的 gitlab 安装,并且只与我没有使用的 Apache 有关

我的系统是运行 Ubuntu 20.04 的专用云服务器。

ubuntu gitlab caddy
  • 2 2 个回答
  • 1198 Views

2 个回答

  • Voted
  1. unixandria
    2020-08-20T12:52:10+08:002020-08-20T12:52:10+08:00

    我终于弄明白了。

    GitLab 不侦听端口,而是侦听 Unix 套接字。幸运的是,我们可以将 Caddy 配置为反向代理到 Caddyfile 中的套接字,如下所示:

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

    确保caddy用户在git和gitlab-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 上使用官方 caddy 和 GitLab-EE 软件包进行了测试,并且没有通过 API 配置 Caddy,但这应该适用于 GitLab 的标准安装。

    • 4
  2. Best Answer
    Ayush Agrawal
    2022-01-15T19:53:34+08:002022-01-15T19:53:34+08:00

    unixandria 的答案对于它的来源是正确的。从那以后,情况发生了一些变化。

    GitLab Docs现在有这个官方部分。

    此外,GitLab 13.5 更改了 unix 套接字的位置,因此 Caddyfile 现在应该有这个:

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

相关问题

  • 无法通过 Ubuntu VPN 访问外部网络

  • ubuntu apt-get upgrade - 如何在 shell 中单击确定?

  • VirtualBox 上 Ubuntu 的访客优化技巧 [关闭]

  • 外部硬盘上的 virtualbox 虚拟硬盘驱动器(Vista 主机上的 ubuntu 客户机)

  • 如何在 Ubuntu 上挂载 LVM 分区?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve