我一直在使用rackup作为服务器开发Sinatra应用程序。现在是时候使用Nginx& amp;麒麟。
我遇到了未正确设置会话的问题。例如,我有Rack :: Csrf,它会出现一个无效的令牌。此外,尝试设置登录的基本会话不起作用。
以下是相关部分。 我的app.rb
use Rack::Session::Cookie, :path => '/'
Nginx conf
upstream subdomain.domain.com {
server unix:/tmp/unicorn.app.sock
fail_timeout=0;
}
server {
server_name subdomain.domain.com;
root /home/user/app/public;
# port to listen for requests on
listen 1.1.2.3.4;
client_max_body_size 4G;
keepalive_timeout 5;
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_redirect off;
proxy_pass http://subdomain.domain.com;
}
}
感谢任何帮助
答案 0 :(得分:0)
我有同样的问题,因为我放了
{{1}}
在config.ru文件中。当我把它移到Sinatra配置块时,问题就消失了。
答案 1 :(得分:-1)
似乎我需要设置一个域
使用Rack :: Session :: Cookie,:domain =>'subdomain.domain.com',:path => '/'
不确定为什么在使用rackup的开发中没有必要