[英]Using GitLab behind nginx enabled basic_auth?
我已經成功安裝了GitLab來管理私有存儲庫(它非常棒!)。
我遇到的問題是默認情況下,當有人點擊我的子域時會出現Gitlab登錄。 在用戶獲取GitLab登錄屏幕之前,我想用basic_auth層保護整個區域。 不幸的是,當它啟用時,這會破壞我從GitLab推/拉的能力。
我的nginx配置啟用basic_auth:
auth_basic "Restricted";
auth_basic_user_file htpasswd;
關於如何在不破壞git / gitlab功能的情況下啟用basic_auth的任何想法?
將其添加到/etc/gitlab/gitlab.rb
:
nginx['custom_gitlab_server_config'] = "auth_basic 'Restricted';\n auth_basic_user_file htpasswd;\n"
並運行gitlab-ctl reconfigure
目前有點像黑客,但這是一個鏡頭。
編輯nginx站點配置以添加/修改以下位置
location ^~ /api/v3/internal/allowed {
proxy_read_timeout 300; # https://github.com/gitlabhq/gitlabhq/issues/694
proxy_connect_timeout 300; # https://github.com/gitlabhq/gitlabhq/issues/694
proxy_redirect off;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_pass http://gitlab;}
location / {
auth_basic "Gitlab Restricted Access";
auth_basic_user_file /home/git/gitlab/htpasswd.users;
# serve static files from defined root folder;.
# @gitlab is a named location for the upstream fallback, see below
try_files $uri $uri/index.html $uri.html @gitlab;
}
保留@gitlab位置塊。
訣竅是讓/ api / v3 / internal / allowd繞過身份驗證。 如果您在執行git pull / push時查看日志,則會向服務器發出是否允許它的請求。 在帶有htpasswd的標准nginx配置中,該請求將被阻止,因為服務器不知道所需的身份驗證。
無論如何不確定是否有更好的選擇(找不到任何)但這似乎對我有用。
您的問題是您希望為GitLab的公共訪問設置密碼限制,但讓Gitlab-Shell無限制地訪問本地GitLab實例。
您可以擁有2個nginx配置,具體取決於IP接口。 更改行listen 0.0.0.0:80 default_server
以listen 127.0.0.1:80 default_server
。
https://github.com/gitlabhq/gitlabhq/blob/v7.7.2/lib/support/nginx/gitlab#L37-38
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.