正式なドキュメントは英語版であり、この日本語訳はAI支援翻訳により作成された参考用のものです。日本語訳の一部の内容は人間によるレビューがまだ行われていないため、翻訳のタイミングにより英語版との間に差異が生じることがあります。最新かつ正確な情報については、英語版をご参照ください。

NGINXのトラブルシューティング

  • プラン: Free、Premium、Ultimate
  • 提供形態: GitLab Self-Managed

NGINXを設定する際、以下の問題が発生する可能性があります。

エラー: 400 Bad Request: too many Host headers

回避策は、proxy_set_header設定がnginx['custom_gitlab_server_config']設定にないことを確認することです。代わりに、gitlab.rbファイルでproxy_set_headers設定を使用してください。

エラー: Received fatal alert: handshake_failure

というエラーが表示される場合があります:

javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure

この問題は、古いJavaベースのIDEクライアントを使用してGitLabインスタンスとやり取りする場合に発生します。これらのIDEはTLS 1プロトコルを使用できますが、Linuxパッケージのインストールではデフォルトでサポートされていません。

この問題を解決するには、issue 624のユーザーと同様に、サーバー上の暗号をアップグレードします。

このサーバーの変更が不可能な場合は、/etc/gitlab/gitlab.rbの値を変更して、古い動作にデフォルトで戻すことができます:

nginx['ssl_protocols'] = "TLSv1 TLSv1.1 TLSv1.2 TLSv1.3"

秘密キーと証明書間の不一致

NGINXログに、以下が見つかる場合があります:

x509 certificate routines:X509_check_private_key:key values mismatch)

この問題は、秘密キーと証明書の間で不一致がある場合に発生します。

これを解決するには、正しい秘密キーを証明書と一致させます:

  1. 正しいキーと証明書があることを確認するには、秘密キーと証明書の係数が一致するかどうかを確認します:

    /opt/gitlab/embedded/bin/openssl rsa -in /etc/gitlab/ssl/gitlab.example.com.key -noout -modulus | /opt/gitlab/embedded/bin/openssl sha256
    
    /opt/gitlab/embedded/bin/openssl x509 -in /etc/gitlab/ssl/gitlab.example.com.crt -noout -modulus| /opt/gitlab/embedded/bin/openssl sha256
  2. それらが一致することを確認したら、NGINXを再設定してリロードします:

    sudo gitlab-ctl reconfigure
    sudo gitlab-ctl hup nginx

Request Entity Too Large

NGINXログに、以下が見つかる場合があります:

Request Entity Too Large

この問題は、最大インポートサイズを大きくした場合に発生します。

これを解決するには、クライアントの最大本文サイズを大きくします。

KubernetesベースのGitLabインストールでは、この設定は別の名前で指定されています

client_max_body_sizeの値を大きくするには、次のようにします:

  1. /etc/gitlab/gitlab.rbを編集して、優先値を設定します:

    nginx['client_max_body_size'] = '250m'
  2. ファイルを保存してGitLabを再設定します。

  3. 更新された設定で正常にリロードされるように、NGINXをHUPします:

    sudo gitlab-ctl hup nginx

セキュリティスキャナーの警告: NGINX HTTP Server Detection

この問題は、一部のセキュリティスキャナーがServer: nginx HTTPヘッダーを検出した場合に発生します。このアラートを表示するほとんどのスキャナーは、これをLowまたはInfoの重大度としてマークします。例については、Nessusを参照してください。

この警告は無視してください。ヘッダーを削除するメリットは低く、その存在は使用統計でNGINXプロジェクトをサポートするのに役立ちます

回避策は、hide_server_tokensを使用してヘッダーをオフにすることです:

  1. /etc/gitlab/gitlab.rbを編集して、値を設定します:

    nginx['hide_server_tokens'] = 'on'
  2. ファイルを保存してGitLabを再設定します。

  3. 更新された設定で正常にリロードされるように、NGINXをHUPします:

    sudo gitlab-ctl hup nginx

Web IDEと外部NGINXの使用時にブランチが見つかりません

というエラーが表示される場合があります:

Branch 'branch_name' was not found in this project's repository

この問題は、NGINX設定ファイルのproxy_passに末尾のスラッシュがある場合に発生します。

これを解決するには、次のようにします:

  1. NGINX設定ファイルを編集して、proxy_passに末尾のスラッシュがないようにします:

    proxy_pass https://1.2.3.4;
  2. NGINXを再起動します:

    sudo systemctl restart nginx

エラー: worker_connections are not enough

GitLabから502エラーが発生し、NGINXログに以下が見つかる場合があります:

worker_connections are not enough

この問題は、ワーカー接続が低すぎる値に設定されている場合に発生します。

これを解決するには、NGINXワーカー接続をより高い値に設定します:

  1. /etc/gitlab/gitlab.rbを編集します:

    gitlab['nginx']['worker_connections'] = 10240

    10240接続は、デフォルト値です。

  2. ファイルを保存して、GitLabを再設定し、変更を有効にします。