Php 不同服务器上的laravel会话

Php 不同服务器上的laravel会话,php,laravel,session,laravel-5.3,Php,Laravel,Session,Laravel 5.3,我有两台服务器运行相同的laravel应用程序(laravel 5.3),它们都支持反向代理(nginx)。对于会话,我将其设置为使用redis。此外,我使用cartalyst sentinel进行用户身份验证 假设反向代理是A,而laravel的服务器是B和C 问题是: 当我登录A时,A将请求转发给B,然后A中的下一个请求转发给C 当请求被转发到C时,我无法传递请求,因为C将我视为来宾,而不是身份验证用户 如何在不同服务器中共享反向代理后的会话? config/cache.php 'defau

我有两台服务器运行相同的laravel应用程序(laravel 5.3),它们都支持反向代理(nginx)。对于会话,我将其设置为使用redis。此外,我使用cartalyst sentinel进行用户身份验证

假设反向代理是A,而laravel的服务器是B和C

问题是:

当我登录A时,A将请求转发给B,然后A中的下一个请求转发给C

当请求被转发到C时,我无法传递请求,因为C将我视为来宾,而不是身份验证用户

如何在不同服务器中共享反向代理后的会话?

config/cache.php

'default' => env('CACHE_DRIVER', 'redis'),
    'stores' => [
        'redis' => [
            'driver' => 'redis',
            'connection' => 'default',
        ],
    ],
config/session.php

'driver' => env('SESSION_DRIVER', 'redis'),
'connection' => 'session',
config/database.php

'redis' => [
        'cluster' => false,
        'default' => [
            'host' => env('REDIS_HOST', '192.168.1.102'),
            'password' => env('REDIS_PASSWORD', null),
            'port' => env('REDIS_PORT', 6379),
            'database' => 0,
            'prefix' => env('REDIS_PREFIX', 'prod'),
        ],
        'session' => [
         'host'     => env('REDIS_HOST', '192.168.1.102'),
         'password' => env('REDIS_PASSWORD', null),
         'port'     => env('REDIS_PORT', 6379),
         'database' => 1,
         'prefix' => env('REDIS_PREFIX', 'prod_session'),
   ],

更新:2017年10月11日


我尝试使用laravel默认身份验证,这是可行的。在我看来,问题出在cartalyst sentinel中,它还没有准备好用于水平缩放服务器。

这可能会有所帮助:&我已经尝试使用Session::getId(),但当反向代理后面的服务器发生更改时,它将具有新的id,对于jwt,我将尝试您的建议。