GitLab设置反向代理

最近由于个人项目所需,在某台服务器搭建了GitLab。但是出现了一系列的问题:

  • 由于此服务器仍有其他网站,所以不能让GitLab直接占用80 / 443端口。
  • 如果通过端口访问,则还需记住GitLab的端口才能访问(懒)

于是准备将GitLab放在某个端口,然后通过服务器的nginx进行反向代理。为了安全,此端口并不会开放到公网。

修改GitLab配置

GitLab的配置文件通常位于/etc/gitlab/gitlab.rb。

我们需要修改2-3个地方:

external_url 'https://[YOUR DOMAIN]'
*如果你不希望使用HTTPS进行访问,请更改为"http".
nginx['listen_port'] = [端口号]
* 如果你在external_url中设置了HTTPS,则还需要修改这里来阻止自动签发Let's encrypt
letsencrypt['enable'] = false

修改完成后,运行 sudo gitlab-ctl reconfigure

配置GitLab反向代理

*如果你使用的是宝塔等面板,请不要使用面板自带的反向代理配置以免发生错误。

server{
    listen 80;
    listen 443 ssl http2;
    # 对应GitLab配置中的 external_url
    server_name git.example.com;
location / {
        client_max_body_size 50m;
        proxy_redirect off;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        # 对应GitLab配置中的 nginx['listen_port']
        proxy_pass https://127.0.0.1:8080;
        index index.html index.htm;
    }
}

加入对话

1条评论

留下评论

电子邮件地址不会被公开。 必填项已用*标注