点击“立即入队”,获得“禁止”

时间:2018-10-17 06:16:56

标签: ruby-on-rails-5 sidekiq-cron

在登台和生产环境中单击“立即入队”即可获得“禁止”。

使用使用fugit(〜> 1.1)和sidekiq(> = 4.2.1)的'rails','5.1.6',sidekiq-cron(1.0.4)

sidekiq-cron issue 60sidekiq-cron issue 61可以看出,这个问题早已解决,但仍然存在相同的问题。

1 个答案:

答案 0 :(得分:0)

Sidekiq :: Web使用Rack :: Protection保护应用程序免受典型的Web攻击(例如CSRF,XSS等)。如果Rack :: Protection发现请求不满足安全要求,它将使会话无效并引发“禁止”错误。一种可能的情况是让应用程序在反向代理后面工作,并且不向其传递重要标头(X-Forwarded-For,X-Forwarded-Proto)。

花了足够的时间弄清楚这个问题之后。这就是帮助我的原因。

Nginx配置:

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;  
proxy_set_header X-Forwarded-Proto https;  
proxy_set_header Host $http_host;  
proxy_set_header X-Real-IP $remote_addr;  
proxy_redirect off;  
proxy_http_version 1.1;  
proxy_set_header Connection '';  
proxy_pass http://app;
#proxy_set_header  X-Forwarded-Ssl on; # Optional
#proxy_set_header  X-Forwarded-Port $server_port;
#proxy_set_header  X-Forwarded-Host $host;

其他解决方案,对我不起作用,但对其他人有用:

Sidekiq monitoring

Sidekiq issue 2487

Rack protection and nginx

Sidekiq issue 2560