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)この問題は、秘密キーと証明書の間で不一致がある場合に発生します。
これを解決するには、正しい秘密キーを証明書と一致させてください:
正しいキーと証明書があることを確認するには、秘密キーと証明書のモジュラスが一致するかどうかを確認してください:
/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一致することを確認したら、NGINXを再設定してリロードしてください:
sudo gitlab-ctl reconfigure sudo gitlab-ctl hup nginx
Request Entity Too Large
NGINXログに、次のエントリが見つかる場合があります:
Request Entity Too Largeこのエラーは、リクエストが許可されている最大本文サイズを超えた場合に発生します。最近最大インポートサイズを増やした場合は、NGINXの設定も更新する必要があります。
これを解決するには、client_max_body_sizeディレクティブを設定してください:
/etc/gitlab/gitlab.rbを編集し、クライアントの最大本文サイズの値を増やします:nginx['client_max_body_size'] = '250m'ファイルを保存し、GitLabを再設定します。
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を使用してヘッダーをオフにすることです:
/etc/gitlab/gitlab.rbを編集して値を設定します:nginx['hide_server_tokens'] = 'on'ファイルを保存し、GitLabを再設定します。
NGINXが更新された設定で正常にリロードされるように、
HUPを実行します:sudo gitlab-ctl hup nginx
Web IDEと外部NGINXを使用している場合にブランチが見つからない
次のエラーが表示されることがあります:
Branch 'branch_name' was not found in this project's repositoryこの問題は、NGINXの設定ファイルのproxy_passに末尾のスラッシュがある場合に発生します。
これを解決するには:
NGINXの設定ファイルを編集し、
proxy_passに末尾のスラッシュがないようにします:proxy_pass https://1.2.3.4;NGINXを再起動します:
sudo systemctl restart nginx
エラー: worker_connections are not enough
GitLabから502エラーが発生し、NGINXログに次のエントリが見つかる場合があります:
worker_connections are not enoughこの問題は、ワーカー接続が低すぎる値に設定されている場合に発生します。
これを解決するには、NGINXのワーカー接続をより高い値に設定します:
/etc/gitlab/gitlab.rbを編集します:gitlab['nginx']['worker_connections'] = 1024010240接続はデフォルト値です。
ファイルを保存し、変更を反映するためにGitLabを再設定します。