单击 'Enqueue now' 获得 'Forbidden'
Getting 'Forbidden' on clicking 'Enqueue now'
在暂存和生产环境中单击 'Enqueue now' 获得 'Forbidden'。
使用 'rails'、'5.1.6'、sidekiq-cron (1.0.4),它使用 fugit (~> 1.1) 和 sidekiq (>= 4.2.1)
我从 sidekiq-cron issue 60 and sidekiq-cron issue 61 可以看出,这个问题很久以前就解决了,但仍然遇到同样的问题。
Sidekiq::Web 使用 Rack::Protection 来保护应用程序免受典型的网络攻击(例如 CSRF、XSS 等)。如果发现请求不满足安全要求,Rack::Protection 将使 session 无效并引发 'Forbidden' 错误。一种可能的情况是让应用程序在反向代理后面工作,而不是将重要的 headers 传递给它 (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;
其他对我不起作用但对其他人有效的解决方案:
在暂存和生产环境中单击 'Enqueue now' 获得 'Forbidden'。
使用 'rails'、'5.1.6'、sidekiq-cron (1.0.4),它使用 fugit (~> 1.1) 和 sidekiq (>= 4.2.1)
我从 sidekiq-cron issue 60 and sidekiq-cron issue 61 可以看出,这个问题很久以前就解决了,但仍然遇到同样的问题。
Sidekiq::Web 使用 Rack::Protection 来保护应用程序免受典型的网络攻击(例如 CSRF、XSS 等)。如果发现请求不满足安全要求,Rack::Protection 将使 session 无效并引发 'Forbidden' 错误。一种可能的情况是让应用程序在反向代理后面工作,而不是将重要的 headers 传递给它 (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;
其他对我不起作用但对其他人有效的解决方案: