连同 Nginx 一起通过 IP 限制 Gitlab 访问

Restrict Gitlab access by IP along with Nginx

我在 Nginx 上安装了 public Gitlab 运行 并且可以正常工作,我想限制它对 IP 地址白名单的访问。

我试过像这样在 nginx 中添加基本限制:

location @gitlab {
    allow 127.0.0.1;
    allow XXX.XXX.XXX.XXX;
    deny all;
    ...
}

它有点像只有允许的 IP 才能通过 gitlab 的 Web 界面。 但是当涉及到从这些允许的 IP 推送内容时,我收到了这个错误:

Pushing to http://my.server:port/myrepo.git
POST git-receive-pack (451 bytes)
remote: GitLab: API is not accesible        
To http://my.server:port/myrepo.git
! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'http://my.server:port/myrepo.git'

奇怪。我也尝试使用 ngx_http_geo_module,结果相同。 有人可以知道如何完成这项工作吗?

谢谢

好的,在查看 gitlab_error.log 之后,我发现我也必须将服务器的 public IP 列入白名单:

[error] 13629#0: *380 access forbidden by rule, client: YYY.YYY.YYY.YYY, server: my.server, request: "POST //api/v3/internal/allowed HTTP/1.1", host: "my.server:port"

所以最后,我的 nginx 配置看起来像这样,现在一切正常:

location @gitlab {
allow 127.0.0.1;
allow XXX.XXX.XXX.XXX;
allow YYY.YYY.YYY.YYY;
deny all;
...

}

就这么简单...

我使用的是旧的 7.6 版本的 gitlab,不知道这是错误还是什么。我会很快 运行 更新并检查这个。