У меня есть два сервера, которые я хотел бы использовать для балансировки нагрузки приложения. В идеале, но не обязательно, я мог бы балансировать нагрузку на основе URL. Но, судя по моим исследованиям, это делается нечасто.
Я планировал использовать DNS-сервисы CloudFlare для аварийного переключения. Что еще более важно, это повышение производительности.
Есть ли хороший способ сделать это без трех серверов?
Вы можете использовать Microsoft Балансировка сетевой нагрузки. Требуется всего два сервера.
Вы можете установить балансировщик нагрузки, например Perlbal на одном из серверов и передавать запросы другому на основе URL-адреса или циклического перебора по мере необходимости, но узкое место может очень быстро превратиться в сервер с Perlbal - обычно в этой ситуации вы бы использовали три сервера.
Вы говорите, что стремитесь к производительности, а не к избыточности; более эффективным способом сделать это (в зависимости от вашего оборудования, трафика и приложения) может быть использование одного сервера в качестве HTTP-сервера, а другого в качестве ускорителя HTTP с чем-то вроде Varnish.