8

プライベート リポジトリの管理用に GitLab のインストールに成功しました (非常に素晴らしいです!)。

私が抱えている問題は、デフォルトでは、誰かが私のサブドメインにアクセスしたときに Gitlab ログインが表示されることです。ユーザーが GitLab のログイン画面を取得する前に、basic_auth レイヤーで領域全体を保護したいと考えています。残念ながら、これにより、GitLab が有効になっているときにプッシュ/プルする機能が損なわれます。

basic_auth を有効にするための私の nginx 設定:

  auth_basic            "Restricted";
  auth_basic_user_file  htpasswd;

git / gitlab の機能を壊さずに basic_auth を有効にする方法についてのアイデアはありますか?

4

3 に答える 3

8

これを に追加/etc/gitlab/gitlab.rb:

nginx['custom_gitlab_server_config'] = "auth_basic 'Restricted';\n  auth_basic_user_file htpasswd;\n"

そして走るgitlab-ctl reconfigure

于 2015-04-02T13:53:21.820 に答える
2

現時点では一種のハックですが、これを試してみてください。

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 構成では、サーバーが必要な認証について認識していないため、その要求はブロックされます。

とにかく、より良い代替手段があるかどうかはわかりませんが(何も見つかりませんでした)、これは私にとってはうまくいくようです。

于 2013-09-09T03:18:13.647 に答える
0

あなたの問題は、GitLab へのパブリック アクセスにパスワード制限を設定したいが、Gitlab-Shell が制限なしでローカル GitLab インスタンスにアクセスできるようにすることです。

IP インターフェースに応じて、2 つの nginx 構成を使用できます。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

于 2015-02-03T12:27:48.377 に答える