连同 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,不知道这是错误还是什么。我会很快 运行 更新并检查这个。
我在 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,不知道这是错误还是什么。我会很快 运行 更新并检查这个。