Сессия Синатры не сохраняется на пост - PullRequest
1 голос
/ 10 марта 2019

В настоящее время я запускаю приложение sinatra, используя puma и обратный прокси-сервер nginx.Сеансы и файлы cookie сохраняются в порядке при любых запросах на получение, что видно при ведении журнала:

{"user_id"=>1, "session_id"=>"89bb966142230a06fb5103db746c3011a741d88c7759dc2bff00c6bdd597c946"}

Идентификатор пользователя, являющийся важной частью, показывающей, что сеанс сохранял свою информацию.Однако, как только я пытаюсь опубликовать через форму, я теряю эту критическую информацию:

"POST /price HTTP/1.0" 302 - 0.0045
{"session_id"=>"89bb966142230a06fb5103db746c3011a741d88c7759dc2bff00c6bdd597c946"}

Моя конфигурация sinatra для сессий:

use Rack::Session::Cookie, :key => 'rack.session',
                       :path => '/',
                       :secret => ENV['secret']

Что, кажется, работает нормально ввсе остальные сценарии приложения.

Мои настройки обратного прокси-сервера Nginx для этого приложения:

server {
  root /var/www/app/public;
  access_log /var/www/app/var/log/nginx_access.log;
  error_log /var/www/app/var/log/nginx_error.log;


  location / {
    try_files $uri @app;
  }

  location @app {
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
    proxy_pass http://admin_server;
    proxy_pass_request_headers on;
    proxy_cookie_domain localhost $http_host;
  }

  #certbot ssl stuff
}

Сейчас я в относительной растерянности, так как все остальные аспекты проверки подлинности иСопротивление сеанса, кажется, работает нормально, но форма сообщения разваливается.Любое руководство и помощь будут очень полезны!

...