Laravel 5에 사이트를 구축 중이므로 다음과 같은 세션을 관리해야합니다. 예를 들면 다음과 같습니다. 나는 사이트 [email protected]을 서버 X에서 호스팅하고 또 다른 [email protected]은 서버 Y를 데이터베이스와 함께 호스팅한다 (두 서버는 다른 국가에있다). 두 사이트 모두 동일한 데이터베이스를 사용해야하지만 세션 관리는 데이터베이스가 [email protected]에서 호스팅되는 것처럼 [email protected]에서 나를위한 전형적인 작업. 인증을 위해 laravel에서 Auth를 사용하고 있습니다. 어떻게 도와 주실 수 있습니까?동일한 데이터베이스를 사용하는 다른 서버 및 다른 도메인의 세션 관리
0
A
답변
0
두 서버에서 동일한 데이터베이스 연결을 사용해야합니다. 세션 관리를 위해 작은 세 번째 서버를 만들거나 단순히 X 서버에 Y 서버 데이터베이스에 연결하도록 지시 할 수 있습니다. 먼저 환경 변수 SESSION_DRIVER
또는 구성 속성 session.driver
을 사용하여 무엇을 사용하는지에 따라 database
또는 redis
으로 설정합니다. 그런 다음 구성 파일 database.php
을 connections
속성 아래에 만들거나 RDBMS 인 경우 redis
아래에 연결을 만듭니다.
'connections' => [
// ...
'session' => [
'driver' => 'mysql',
'host' => env('SESSION_DB_HOST'),
'database' => env('SESSION_DB_NAME'),
'username' => env('SESSION_DB_USERNAME'),
'password' => env('SESSION_DB_PASSWORD'),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false,
]
]
// Or
'redis' => [
// ...
'session' => [
'host' => env('SESSION_REDIS_HOST'),
'port' => env('SESSION_REDIS_PORT', 6379),
'database' => 0,
],
]
그런 다음 파일
session.php
에서,이 경우에서 원하는 연결,
session
의 이름
connection
의 값을 변경합니다.
필요한 포트를 열고 권한 부여 프로세스를 수행하고 호스트 서버 (데이터베이스가 있으므로 Y 서버)에서 보안 조치를 취해야합니다. 주석에게
세션 드라이버가 응답
는 ---- laravel 세션을 관리하는 데 사용하는 메커니즘입니다. 그것은 파일, 데이터베이스, redis ...에있을 수 있습니다. 그래서 설정 파일에서 세션 드라이버를 선택하고 드라이버가 데이터베이스 인 경우 데이터베이스 연결을 지정하거나 기본 데이터베이스 연결을 사용합니다. 따라서 세 번째 서버를 만들고 데이터베이스로 Redis를 사용하려는 경우 포트 6379를 엽니 다 (기본 redis 구성을 사용하는 경우). 그러면 Laravel 설치에서 연결을 만듭니다.
database.php
의 연결과 같이 될 것입니다 : SESSION_REDIS_HOST=xx.xx.xx.xx // the ip address or domain of the third server
SESSION_REDIS_PORT= 6379
SESSION_DRIVER=redis
그리고 마지막으로, 당신 session.php
설정에서,이 값을 설정합니다 :
.env
추가를에서 다음 'redis' => [
// ...
'my_session' => [
'host' => env('SESSION_REDIS_HOST'),
'port' => env('SESSION_REDIS_PORT', 6379),
'database' => 0,
],
]
//...
'connection' => 'my_session',
동일한 세션 데이터베이스에 연결하려는 모든 Laravel 설치에서이 작업을 수행합니다.
0
Laravel은 데이터베이스에 세션을 저장하는 데이터베이스 세션을 제공하므로 애플리케이션에 여러 서버를 사용할 수 있습니다. 살펴보기 https://laravel.com/docs/5.3/session#database-sessions
귀중한 의견을 보내 주셔서 감사합니다. 내 개념이 지금 지워졌습니다. 그러나 여전히 작은 세 번째 서버의 요구 사항을 언급 한 지점에 갇혀 있습니다. 기본 요구 사항을 자세히 설명하고 세션 구성을 유지해야 할 필요가있는 곳을 설명하십시오. 나는 아직 세션 드라이버를이 방법으로 사용하지 않았기 때문에. db 연결은 설정에서만 수행했습니다. 기본적으로 세션 드라이버는 무엇을 할 것이며 세션/쿠키가있는 서버와 어떻게 연관되는지 설명합니다. – ak001
답변에 대한 설명이 추가되었습니다. –