Назад | Перейти на главную страницу

Как следует организовать небольшую настройку балансировки нагрузки на базе Linux?

Недавно я унаследовал небольшой веб-сервер на базе Linux с балансировкой нагрузки. К сожалению, он так и не был полностью введен в эксплуатацию, поэтому я работаю над этим.

Базовая установка:

Сервер базы данных находится внутри основного брандмауэра компании, а три других - в демилитаризованной зоне. Базовая балансировка нагрузки работает, но у меня были проблемы с сохранением соединений с LVS, а поскольку хранилище сеансов для PHP5 использует локальные файлы, мы теряем сеансы. Возможно, мне удастся заставить LVS сохранять сеансы, но поскольку соединения обычно выполняются с большим количеством NAT-клиентов за одним брандмауэром с иногда длительными задержками между запросами, я думаю, что это может быть проигрышным предложением. Вместо этого я решил переключиться на memcached для хранения сессий, так как это будет быстро настроить.

Мой вопрос в том, где должна находиться служба memcached? Я не могу добавить еще один сервер, поэтому он должен работать либо с балансировщиком нагрузки, либо с сервером базы данных. На данный момент я склоняюсь к тому, чтобы поставить его с сервером базы данных, поскольку он не имеет внешних подключений, но я обеспокоен тем, что они могут в некоторой степени конфликтовать. Есть ли лучший способ для такой ситуации? Или любое другое руководство?

На вашем месте я бы сэкономил память на сервере базы данных для базы данных. Для устойчивости я бы установил memcached на оба ваших веб-сервера. Одна небольшая проблема с использованием memcached для сеансов заключается в том, что перезапуск вашего memcached уничтожит ваши сеансы. Вместо этого вы можете посмотреть что-то вроде memcachedb, которое сохраняет объекты.

Я бы поставил на балансировщик нагрузки. По трем причинам:

  1. Эта машина, вероятно, в настоящий момент не использует много ЦП / ОЗУ (если это не так, вам нужно переосмыслить).
  2. Если балансировщик нагрузки выйдет из строя, сеансы вам все равно не пойдут.
  3. Сеансы имеют немного больше логической связи с соединениями, чем с базами данных.