Задать вопрос
north_leshiy
@north_leshiy
Руководитель направления разработки

Можно ли написать балансировщик на PHP?

Нужно описать логику балансировщика загрузки файлов по нескольким нодам, можно ли это реализовать на PHP, и если да, то с помощью чего?
  • Вопрос задан
  • 361 просмотр
Подписаться 1 Оценить 1 комментарий
Помогут разобраться в теме Все курсы
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 5
nazarpc
@nazarpc
Open Source enthusiast
Можно, но не нужно. Такое делают специализированные инструменты вроде HAProxy и в том же Nginx можно распределять нагрузку по нескольким backend-ам.
Ответ написан
Комментировать
index0h
@index0h
PHP, Golang. https://github.com/index0h
php для балансировки отдачи файлов... это хреновая затея, это ж stateless язык! А вот для контроля доступа, но балансировкой nginx-ом - это норм. Файлы можно шардировать через mogilefs, через php вытягивать урл шарда, а отдачу производить уже nginx-ом через X-Accel-Redirect
Ответ написан
Комментировать
Sanasol
@Sanasol Куратор тега PHP
нельзя просто так взять и загуглить ошибку
Балансировщика чего?
Ответ написан
Sanes
@Sanes
Что балансировать собрались? Что-то наверное можно, но это будет на основании какой-то статистики и может несложных правил.
Ответ написан
copist
@copist
Empower people to give
Я правильно понимаю, что вы планируете использовать несколько серверов с приложениями на PHP для upload файлов?

В этом случае балансировка для POST запросов аналогичная той же, как и для GET запросов, но каждый из серверов будет сохранять файлы в своей временной директории для загруженных файлов. Если пользователю вернуть URL на такой файл, то может случиться ошибка при отображении файла, когда при повторном прохождении через балансировщик будет выбран другой сервер.

Три варианта решения:
1. Возвращать пользователю ссылку на конкретный файловый сервер, чтобы раздавать обратно в обход балансировщика
2. Использовать центральное сетевое файловое хранилище, чтобы раздавать файлы с него
3. Использовать распределённое облачное хранилище, возможно с использованием CDN

Немного шевелящихся картинок :) https://www.dropbox.com/s/eiwhngo66fzq6hi/shared_u...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽