Загрузка файлов и сессий при балансировке нагрузки с использованием nginx и php5-fpm
У нас есть два веб-сервера, работающие с конфигурацией nginx + php5-fpm (нативные сессии php на memdisk)
Веб-серверы используют разные субдомены, и распределение нагрузки как-то выполняется. Теперь мы хотим использовать один и тот же адрес домена для этих серверов и даже более новые с точно такой же конфигурацией.
Установка nginx перед этими веб-серверами не является хорошей идеей, так как существует много загрузок файлов на эти веб-серверы, и скорость передачи данных, проходящая через балансировщик нагрузки для каждой загрузки, вызовет ненужный трафик. Для кругового решения DNS требуются сеансы, совместно используемые в memcache, redis или db. Это также то, что нам не нравится, потому что мы храним слишком много данных в сессиях и очень хорошо с ними в наших мемдисках на локальном компьютере.
Есть ли другие конфигурации, которые соответствуют нашим потребностям?
1 ответ
Данные должны пройти через какое-либо сетевое устройство или другое. Это может быть балансировщик нагрузки приложения, такой как Nginx, балансировщик нагрузки сети программного обеспечения, такой как LVS, аппаратный балансировщик нагрузки или, если используется циклическая перестановка DNS, вам все равно необходимо маршрутизировать трафик через коммутатор.
Если вы не удовлетворены производительностью Nginx, проверьте LVS или подумайте о покупке аппаратного балансировщика нагрузки. Мы увидели действительно хорошую производительность благодаря LVS (Linux Virtual Server) в компании, занимающейся веб-хостингом, где я раньше работал, так что с программным обеспечением еще можно многое сделать.
Провести исследования. Установите балансировщик нагрузки Nginx или LVS и сравните его. Подражайте вашей обычной модели трафика и проверьте, как она работает.