概要
GitLab
v13.5にアップデートしたら 502 Bad Gateway
になった。
なにが悪かったかのかを簡単にまとめる。
先に結論
悪いのはGitLab
ではなく、NGINX
のリバースプロキシ設定を変えなくてはならないのに変えなかったから。
発生環境
-
Ubuntu
18.04 -
GitLab
v13.5.1 Omnibus版- アップデート前は v13.4.3
-
NGINX
v1.19.3- Omnibus版同梱ではなく、独立して動いている
何が起こったか?
GitLab
v13.4.3 -> v13.5.1にアップデートしたら502 Bad Gateway
になった。
慌ててGitLab
の動作確認するも問題なし
$sudo gitlab-ctl status
# ここにいっぱいRUNって出てる。
原因を見つける
なんやかんやあってGitLab v13.5リリースBlog見ると次の一文があった。1
The default path for the Workhorse socket changed from /var/opt/gitlab/workhorse/socket to /var/opt/gitlab/workhorse/sockets/socket in 13.5. A gitlab-ctl reconfigure is required during upgrade to apply this change. If you use SELinux and have specified a custom socket path, see the upgrade documentation for some manual steps that are required.
もう一度特に重要なところを
The default path for the Workhorse socket changed from /var/opt/gitlab/workhorse/socket to /var/opt/gitlab/workhorse/sockets/socket in 13.5.
まじでImportant
対策
NIGNX
のリバースプロキシ設定のconf
ファイル
よくある場所だと etc/nginx/sites-available/GitLab.conf
とか
upstream gitlab-workhorse {
# On GitLab versions before 13.5, the location is
# `/var/opt/gitlab/gitlab-workhorse/socket`. Change the following line
# accordingly.
+ server unix:/var/opt/gitlab/gitlab-workhorse/sockets/socket fail_timeout=0;
}
ソケットのパスを/var/opt/gitlab/gitlab-workhorse/sockets/socket
に変えればOK
参考サイト
- Permission denied on sockets after update to "13.5.1-ce.0"
- https://gitlab.com/gitlab-org/gitlab-recipes/-/tree/master/web-server/nginx
-
ページの1番下に書いてある。 ↩