В настоящее время я запускаю приложение 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
}
Сейчас я в относительной растерянности, так как все остальные аспекты проверки подлинности иСопротивление сеанса, кажется, работает нормально, но форма сообщения разваливается.Любое руководство и помощь будут очень полезны!