Мой веб-сайт становится слишком большим для того, чтобы один веб-сервер мог обрабатывать трафик. Предвидя это, код вполне может работать параллельно, совместно используя базу данных, но я никогда не пытался разделить один IP-адрес между несколькими веб-серверами. Какое оборудование или программное обеспечение мне нужно для разделения входящих TCP-соединений между несколькими устройствами? Бонусные баллы, если система обнаружит, что один или несколько ящиков отключились.
Вам нужен балансировщик нагрузки. Есть два вида: программные и аппаратные.
оборудование : Вы покупаете компьютер, который обычно имеет веб-интерфейс и равномерно распределяет трафик между веб-серверами. У них обычно есть много функций, которые позволяют вам делать много вещей, таких как поддержка 802.1Q, SFP, глобальная балансировка нагрузки, завершение SSL и т. Д. И т. Д. Они довольно дорогие, и их можно приобрести у Cisco, F5, Radware, Barracuda (дешевле).
программное обеспечение : Вы получаете стандартный сервер и устанавливаете программное обеспечение для балансировки нагрузки. В Linux это довольно просто сделать. Вы можете использовать HAProxy, ldirectord или Keepalived. Есть из чего выбрать. Это более дешевый метод, но без всех красивых веб-интерфейсов и интересных функций.
Любая полуприличная система балансировки нагрузки обнаружит автономный сервер. Все вышеперечисленное делают.
Вы могли бы использовать Лак для этого, или Фунт две хорошие и надежные системы и лак даже кэшируют ваш сайт как король и ускоряют работу.
Чтобы добавить к сказанному Антуаном, я бы порекомендовал аппаратный балансировщик нагрузки, если ваш сайт действительно становится большим. Программные балансировщики нагрузки имеют тенденцию увеличивать объем служебного трафика в вашей сети. Аппаратные балансировщики нагрузки также обычно разрабатываются с учетом аварийного переключения, поскольку в противном случае они становятся единственной точкой отказа. Как сказал Атнойн, они обычно очень дороги. Если у вас небольшой магазин, я бы порекомендовал изучить Load Balancer от Кемп Технологии, они хорошо сделаны и хорошо работают по цене, которая составляет буквально 10-ю часть от перечисленных выше больших мальчиков. В настоящее время мы используем пару для балансировки нагрузки на нашем веб-сайте, студенческом портале и портале онлайн-обучения в онлайн-университете, где я работаю, где у нас довольно мало трафика каждый день.
Вы также можете разделить «услуги». Один сервер должен обрабатывать запросы MySQL, а другой - веб-запросы. Вы также можете настроить его так, чтобы один обрабатывал только изображения / статические страницы, а другой обрабатывал динамические запросы. Это должно работать независимо от операционных систем и может обеспечить некоторую дополнительную гибкость, но усиливает связь серверов.
Самый дешевый способ сделать это - получить другой IP-адрес и добавить его в запись A для веб-сайта. Затем запросы будут случайным образом направляться на одну или другую машину. Тем не менее, это не обеспечивает автоматического переключения при отказе и не гарантирует согласованности сеанса.