【问题标题】:Getting 'Forbidden' on clicking 'Enqueue now'单击“立即入队”时获得“禁止”
【发布时间】:2018-11-02 17:40:23
【问题描述】:

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

使用 'rails'、'5.1.6'、sidekiq-cron (1.0.4),它使用 fugit (~> 1.1) 和 sidekiq (>= 4.2.1)

我可以从 sidekiq-cron issue 60 和 sidekiq-cron issue 61 看到这个问题很久以前就得到了解决,但仍然遇到同样的问题。

【问题讨论】:

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


    【解决方案1】:

    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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-05-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-03
      • 2017-06-30
      相关资源
      最近更新 更多