LoginSignup
12
10

More than 5 years have passed since last update.

Sidekiq::Webの更新処理ができない

Posted at

背景

  • Railsのジョブ実行サーバであるSidekiqにはかっこいいジョブ管理のWebインターフェイスがもれなくついてきます

  • 下記のような感じでroutes.rbに追記するだけ
mount Sidekiq::Web => '/sidekiq'

環境

  • Puma
    • Clusterで複数プロセス起動
    • 複数サーバ

問題

  • この画面を使ってジョブの参照をしているには問題なかったのですが、
  • ジョブの削除とかリトライのような更新をしようとするとなぜか403 forbiddenが発生することがありました

原因

  • Sidekiq::WebひいてはSinatraがデフォルトではマルチプロセスでセッション管理できない
  • 結果的にRack::ProtectionのCSRFチェックにひっかかっていたのが原因です

対応

  • 下記の対応をroutes.rbに入れてsinatraのsession_secretを固定すれば治ります
require 'sidekiq/web'
Sidekiq::Web.set :session_secret, 'secret secret'
mount Sidekiq::Web => '/sidekiq'
12
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
10