Как это работает

Материал из MegaWiki
Перейти к: навигация, поиск

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

Типы серверов

Nginx

Используется в качестве фронтенда и балансировки нагрузки. Также он отвечает за кеширование статического содержания (в основном это файлы загруженные в энциклопедию).

Squid

Используется для кеширования страниц MediaWiki, это позволяет ускорить доступ к страницам в несколько раз.

Apache

Веб сервер Apache используется для генерации страниц MediaWiki. Генерация уменьшенных копий для картинок и загрузка файлов для всех энциклопедий проекта МегаВики происходит на отдельных серверах, которые отвечают только за размещение файлов. Таким образом мы разделили нагрузку между разными типами серверов и можем отдельно увеличивать производительность для хостинга файлов в случае увеличения нагрузки.

MySQL

Отдельный сервер базы данных для хранения данных энциклопедии на базе сервиса Amazon RDS. В случае аварии или повреждения базы данных можно восстановить любую копию базы данных за последние 10 дней.


Настройка MediaWiki

  • На всех серверах установлена стандартная версия MediaWiki.
  • Мы используем файл с глобальной конфигурацией для всех энциклопедий размещенных в рамках проекта.
  • Для каждого проекта дополнительно подключается свой файл конфигурации в котором задаются индивидуальные настройки проекта (например список подключаемых расширений).
  • Для группы проектов (например несколько энциклопедий на разных языках) можно создавать общий файл с настройками для этой группы.

Такая настройка дает возможность запускать большое количество копий Apache при увеличении нагрузки без необходимости синхронизировать измененные данные т.к. все данные хранятся в базе данных на отдельном сервере, а загруженные файлы на отдельных файловых серверах.