不同服务器上的laravel会话

时间:2017-10-10 12:01:00

标签: php laravel session laravel-5.3

我有2台服务器运行相同的laravel app(laravel 5.3),两者都在反向代理(nginx)之后。对于会话我设置它使用redis。另外,我使用cartalyst sentinel进行用户身份验证。

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

问题是:

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

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

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

配置/ cache.php

'default' => env('CACHE_DRIVER', 'redis'),
    'stores' => [
        'redis' => [
            'driver' => 'redis',
            'connection' => 'default',
        ],
    ],

配置/ session.php文件

'driver' => env('SESSION_DRIVER', 'redis'),
'connection' => 'session',

配置/ 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默认的Auth,它的工作原理。从我的角度来看,问题出现在cartalyst哨兵中,尚未准备好在水平扩展服务器中使用。

0 个答案:

没有答案