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)この問題は、秘密キーと証明書の間で不一致がある場合に発生します。
これを解決するには、正しい秘密キーを証明書と一致させます:
正しいキーと証明書があることを確認するには、秘密キーと証明書の係数が一致するかどうかを確認します:
/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この問題は、最大インポートサイズを大きくした場合に発生します。
これを解決するには、クライアントの最大本文サイズを大きくします。
KubernetesベースのGitLabインストールでは、この設定は別の名前で指定されています。
client_max_body_sizeの値を大きくするには、次のようにします:
/etc/gitlab/gitlab.rbを編集して、優先値を設定します:nginx['client_max_body_size'] = '250m'ファイルを保存してGitLabを再設定します。
更新された設定で正常にリロードされるように、NGINXを
HUPします:sudo gitlab-ctl hup nginx
セキュリティスキャナーの警告: 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を再設定し、変更を有効にします。