Intereting Posts
Удаление ненужных элементов из таблицы simple_html_dom URL переписать переменную PHP $ _GET избыточен PDO :: PARAM_INT? считать отношения внутри петли в веточке Отслеживание электронной почты начинается с реального изображения Отправьте как POST, так и GET в форме Метод ajax serialize () не читает все поля данных формы html memcache не работает над окнами? PHP преобразует одномерный массив в многомерную Как получить независимый от платформы сепаратор каталога в PHP? Ошибка: данные усечены для столбца «lat» в строке 1 Можно ли полагаться на IP-адрес Paypal исключительно для регистрации покупок? код воспламенителя Модульные расширения – уровень доступа к MX_Router :: _ set_default_controller () должен быть общедоступным (как в классе CI_Router) Выбирайте продукты по нескольким атрибутам, используя AND вместо OR, конкатенатор, модель данных EAV PHPUnit сгенерированный тестовый скелетный путь

Как загрузить баланс php-приложения?

Я ищу гиды, советы или образцы того, как загрузить баланс приложения php. Моя настройка – Ubuntu 10.04 и PHP 5.3. Я никогда не загружал сбалансированные серверы раньше, и я ищу любую помощь, которая предлагается.

Обновить:
Это веб-приложение, которое, как ожидается, будет иметь несколько сотен пользователей, использующих его одновременно. MySQL будет базой данных. Для пользователей будут сеансы, но я слышал, что сеансы не могут переноситься на несколько серверов. Будут очень частые обновления контента. Будут файлы, но я просто использую CDN для них.

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

  • Не используйте государственный сервер. Это означает, что вы не можете использовать традиционный объект сеанса, потому что он хранится в памяти локального компьютера, поэтому объект может быть доступен на одном сервере, но не в другом
  • Не используйте диск для хранения чего-либо. Та же причина, что и выше. Вы можете записать файл на диск 1 сервера и попытаться прочитать на сервере 2
  • В нижней строке вы должны избегать любых ресурсов, зависящих от сервера. Если вам нужно использовать что-то вроде этого (государственный сервер, диск и т. Д.), Вы должны сохранить общий ресурс, чтобы все машины с балансировкой нагрузки обращались к нему

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

Итак, что касается программного обеспечения для балансировки нагрузки, я не парень Linux, но я вижу, что многие люди говорят об Apache как WebServer и HAProxy в качестве приложения балансировки нагрузки.

Надеюсь, поможет!

Существуют классы PHP, которые позволяют хранить сеанс в MySQL.

http://php.net/manual/en/function.session-set-save-handler.php

Я бы поставил что-то вроде nginx на интерфейсный сервер и использовал его для балансировки нагрузки. За этим вы могли бы использовать свои два веб-сервера и даже использовать nginx для обслуживания своего статического контента.

За вашими веб-серверами у вас будет ваш mysql db.

Я разработал несколько сетей, которые получили чуть более 1000 / имп / сек и начали с этим проект сети. После увеличения трафика я обычно просто расширил инфраструктуру, добавив больше веб-серверов и больше доступных для чтения db и заменив nginx на пару F5.