【问题标题】:Devise session after nginx proxy pass to different domain在 nginx 代理传递到不同域后设计会话
【发布时间】:2013-12-10 09:11:05
【问题描述】:

目标是将 mask_domain.com 映射到 masp.original_domain.com/something。为了实现这个目标,我为 mask_domain.com 设置了我的 nginx,如下所示(这是一个 rails 应用程序):

server {
  listen 80;
  server_name mask_domain.com;

  location /assets {
     proxy_pass http://mask.original_domain.com/assets;
  }

  location /uploads {
    proxy_pass http://mask.original_domain.com/uploads;
  }

  location /something {
    proxy_pass http://mask.original_domain.com;
  }

  location / {
    proxy_pass http://mask.original_domain.com/something/;
  }
}

我使用 Devise 进行身份验证。我无法登录,也没有看到设置了任何 cookie。可能是因为:

  MyApp::Application.config.session_store :cookie_store, :key => '_my_app_session', :domain => :all

对于 :domain => :all 它真的是 '.original_domain.com'

我将不胜感激任何提示或帮助:-)

【问题讨论】:

    标签: ruby-on-rails session nginx devise proxy


    【解决方案1】:

    在我发布问题后,我开始考虑在 nginx 中重写 cookie……我解决了它:-) http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_cookie_domain

    我刚刚添加到服务器块:

    proxy_cookie_domain .original_domain.com .mask_domain.com;
    

    现在会话跨域持续存在。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-31
      • 2014-04-06
      • 2012-05-19
      • 2020-11-27
      • 2023-03-06
      • 2022-12-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多