我在Nginx上运行了一个公共的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,结果相同。 有人知道如何完成这项工作吗?
由于
答案 0 :(得分:0)
好的,看了gitlab_error.log后,我发现我也必须将我服务器的公共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。我很快就会进行更新,并会对此进行检查。