Драйвер задається в config/session.php. На одному сервері різниці майже немає, на кількох - вона вирішальна.
file - файли на диску сервера. За балансувальником користувач після кожного запиту може потрапити на інший сервер, де його сесії немає, тож його «розлогінює» через раз.
cookie - усе зберігається в самій куці, зашифрованій. Спільного сховища не треба, але обсяг обмежений ~4 КБ, і дані їздять у кожному запиті.
database - таблиця sessions, спільна для всіх серверів. Працює надійно, ціна - запит на кожен запит.
redis - спільне сховище в памʼяті. Стандартний вибір для кількох серверів: швидко й без навантаження на базу.
Що ще ламається на кількох серверах, крім драйвера:
APP_KEY має бути однаковий на всіх серверах, інакше куки, зашифровані одним, не розшифрує інший.
- Той самий Redis мають бачити всі вузли - окремі інстанси не допоможуть.
Дві деталі, що псують життя окремо від масштабування. Сесія блокується на час запиту, тож кілька паралельних AJAX-запитів шикуються в чергу - для читання це знімається ->block() або сесією без запису. І в API сесій зазвичай узагалі не має бути: токен не потребує стану на сервері, а SESSION_DRIVER для stateless-запитів - зайва робота.
Докладніше в документації: HTTP-сесія