Я создаю блог Rails. Я использую Rails 5 и Devise 4.2.0. Приложение работает на сервере Ubuntu с Nginx и Puma и развертывается с Capistrano. Все работает отлично в производстве, пока не включит HTTPS (с действительным сертификатом SSL) на Nginx и добавит 301 переадресацию формы HTTP к HTTPS.Devise: Невозможно подтвердить подлинность CSRF-токена, включенную HTTPS на сервере (нет JSON/API)
Я проверил журналы производства, а ключи подлинности в журналах не совпадают с теми, которые я вижу в браузере.
Вот файл nginx.conf Я использую:
upstream puma {
server unix:///home/deploy/apps/example-blog/shared/tmp/sockets/example-blog-puma.sock;
}
server { # Redirect HTTP to HTTPS
# Bind port(s)
listen 80;
listen [::]:80;
# Bind domain(s)
server_name blog.example.com;
# 301 redirect to HTTPS
return 301 https://$server_name$request_uri;
}
server { # Primary server block
# Bind port(s)
listen 443 default_server ssl;
# Bind domain(s)
server_name blog.example.com;
# Bind certificate(s)
ssl_certificate /etc/nginx/ssl/blog.example.com/ssl-bundle.crt;
ssl_certificate_key /etc/nginx/ssl/blog.example.com/blog.example.com.key;
root /home/deploy/apps/example-blog/current/public;
access_log /home/deploy/apps/example-blog/current/log/nginx.access.log;
error_log /home/deploy/apps/example-blog/current/log/nginx.error.log info;
location ^~ /assets/ {
gzip_static on;
expires max;
add_header Cache-Control public;
}
try_files $uri/index.html $uri @puma;
location @puma {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_pass http://puma;
}
error_page 500 502 503 504 /500.html;
client_max_body_size 10M;
keepalive_timeout 10;
}
Кто-нибудь знает, что может быть здесь происходит? Дайте мне знать, если вам нужна дополнительная информация.
Благодаря
Большое спасибо, это экономит мой день. У меня была точно такая же проблема, ваше решение работает как шарм. Любое объяснение? –
@CupraR_On_Rails, как я понимаю, он позволяет приложению Rails видеть, что HTTP-протокол, к которому пришел запрос, и используется при создании токена аутентификации. – slehmann36
Очень полезно для меня, спасибо. –