正式なドキュメントは英語版であり、この日本語訳は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パッケージのインストールではデフォルトでサポートされていません。

このイシューを解決するには、イシュー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

このエラーは、リクエストが許可されている最大本文サイズを超えた場合に発生します。最近最大インポートサイズを増やした場合は、NGINXの設定も更新する必要があります。

これを解決するには、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

Kubernetesインストールの場合、client_max_body_sizeの代わりにproxyBodySizeを設定します。

セキュリティスキャン警告: 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を再設定します。