У меня есть ферма серверов IIS, которая предоставляет что-то вроде сайтов парковки доменов, с тысячами доменов, назначенных системе, и динамически генерируемым контентом. Мне нужно решение для балансировки нагрузки и кеширования. Я намерен использовать Apache 2.2 с mod_cache и mod_proxybalance для достижения этой цели.
Мой предыдущий опыт работы с Apache был довольно ограниченным и обычно имел дело только с несколькими виртуальными хостами на основе имен. Я никогда раньше не реализовывал с ним балансировку нагрузки или проксирование.
Исследуя конфигурацию, я оставил ломать голову над некоторыми основными директивами конфигурации, которые я не уверен, как настроить для этой среды. В частности, документы apache дают ужасные предупреждения о неправильной настройке директив ServerName. В этой ситуации я не знаю, как с этим справиться.
Сайт обслуживает не собственный контент, а кешированный и прокси-контент. Я не могу поместить каждое доменное имя в отдельные директивы virutalhost. Необходимы ли в этой ситуации директивы типа ServerName (или другие директивы, которые, кажется, требуют доменных имен)?
РЕДАКТИРОВАТЬ:
Если вы хотите предложить другие решения, я открыт для них. До сих пор был предложен ngnix, но ngnix не может проксировать виртуальные хосты на основе имени из-за того, что его код прокси использует только http 1.0 для внутренних серверов. Я также не уверен, может ли он кэшировать виртуальные хосты на основе имен.
Varnish выглядит как возможное решение для кеширования, но мне бы очень хотелось, чтобы что-то можно было разместить на одном сервере, поэтому мне не нужно несколько серверов для каждой функции.
В основном вам понадобится <VirtualHost *>
для каждого домена, каждый со своим ServerName
и ServerAlias
, внутри каждого вы поместите директивы, связанные с прокси и кешем.
Я предлагаю вам поместить один домен для каждого файла в общий каталог и включить все это из основного файла apache. В настоящее время большинство дистрибутивов Linux делают это, используя такие каталоги, как Debian / Ubuntu sites-available
и sites-enabled
- все домены являются файлами внутри доступный dir и просто связаны внутри включен dir, который нужно активировать.
И я знаю, что это не то, о чем вы просили, но, поскольку это всего лишь парковка домена, рассматривали ли вы возможность использования nginx? Он предназначен для таких вещей (интерфейс для получения больших хитов и обслуживания статического / кешированного / проксированного контента).
Если вы собираетесь заменить бэкэнд, mod_vhost_alias
В противном случае, если вы просто ставите кеширование перед существующим решением, лучше подойдут Varnish или Squid. Varnish имеет встроенную поддержку для внутренней балансировки нагрузки, проверки работоспособности и т. Д. Вы также можете запустить пару серверов ipvs впереди для балансировки нагрузки и обеспечения 100% работоспособности пары (или более) серверов Varnish.
Вы можете взглянуть на http://httpd.apache.org/docs/2.0/vhosts/mass.html и особенно последний абзац. Я успешно запустил массовый vhosting с mod_rewrite.