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

Varnish / Nginx / Apache

Я изучаю потенциальный сценарий для реализаций Varnish / Nginx / Apache, и у меня есть несколько вопросов об этой настройке.

Я хочу использовать все три вместе, а не заменять Apache на Nginx.

На данный момент я не уверен, следует ли помещать Varnish перед Nginx, который будет обслуживать статический контент и передавать динамический контент в Apache, или помещать его между Nginx и Apache?

Должен ли я включить кеш Nginx или даже включить его и вообще не использовать Varnish?

У меня есть несколько скриптов, которые обрабатывают статистику на основе журналов Apache. Что я могу сделать, чтобы позволить моим скриптам обрабатывать журналы целиком, а не только журналы Apache, которые будут содержать только динамическую статистику запросов?

Как сделать так, чтобы Varnish передавал статистику доступа к Apache / bginx, поскольку доступ к кешированным файлам не будет регистрироваться Apache / Nginx?

Это действительно зависит от контента рассматриваемого сайта и схемы кеширования, которую вы используете.

Ранее я рассматривал этот сценарий для сайта с очень высоким трафиком (более 1 млн уникальных посетителей в день), и в итоге мы использовали Nginx и Apache без Varnish. Это произошло из-за существующих методов кеширования и количества динамического контента на странице, поэтому мы могли бы иметь только изображения кеша Varnish и статические файлы, такие как css и js. Во время тестирования это стало вопросом Nginx или Varnish, поскольку, как и вы, мы хотели сохранить Apache в конфигурации. Тестирование, которое мы провели, показало, что Nginx работает быстрее, чем Varnish на большой громкости, так что мы пошли именно так.

Одна вещь, которую мы могли бы сделать, но не сделали, - это загрузить динамические разделы страницы в отдельном запросе, а затем вставить контент в браузер, что позволило бы нам использовать Varnish для кэширования большего количества объектов, передавая динамические элементы в Apache и обслуживание статического контента через Nginx при промахах в кеше.

Что касается проблемы с ведением журнала, вам, скорее всего, потребуется написать сценарии, которые будут анализировать / объединять ваши журналы вместе, а затем вы можете запускать свои сценарии статистики для журналов слияния. Я считаю, что есть несколько хороших инструментов для слияния журналов, но сейчас могу придумать один.

Varnish не поддерживает HTTPS. Если вы хотите его использовать, поставьте Nginx снаружи, чтобы поговорить с клиентами.

Для сервера с низким трафиком я решил использовать только Nginx + Apache. Для более высокой нагрузки может быть полезно сравнить Nginx и Varnish по их производительности кэширования.