Nginx как обратный прокси-сервер перед Apache

Текущая настройка Single CentOS 6 VPS с 6G памяти под управлением Apache 2.2, mariadb и PHP через FastCGI. Сервер имеет в основном WordPress сайты, но также имеет несколько других сайтов на PHP. Прямо сейчас мы не используем HTTPS для какого-либо сайта, но планируем добавить его для аутентификации на сайтах на основе PHP.

  1. Есть ли какие-либо преимущества в добавлении Nginx в качестве обратного прокси-сервера (с кэшированием или без него) для статического содержимого перед apache + FastCGI на том же физическом сервере? В Apache не загружен mod_php, поэтому он уже довольно быстро работает со статической средой.
    1a. Каковы возможные преимущества поддержания apache в середине и сохранения отношения apache-php к FastCGI.
    1б. Если мы изменим Apache-FastCGI на Apache-mod_php, будут ли какие-то преимущества? Поскольку сейчас единственной задачей apache является обслуживание динамического содержимого, улучшит ли mod_php производительность? Как и в случае Apache-FstCGI, apache должен запросить отдельный процесс (FastCGI) для разбора php, а в mod_php процесс apache может анализировать php напрямую.
    1c. Какой сервер должен обрабатывать SSL?
  2. Если apache удален из середины, а Nginx напрямую использует php-fpm для динамического содержимого, будут ли какие-то преимущества?
  3. Мы рассматриваем возможность получения бесплатного плана CloudFlare для добавления CDN, имеет ли смысл добавлять nginx, если CloudFlare находится спереди?

1 ответ

Решение

1) Да, в основном, когда apache обрабатывает медленные HTTP-клиенты: apache разработан таким образом, что его дочерний блок блокируется до тех пор, пока он не обслуживает одного клиента, поэтому он не может обслуживать других. Таким образом, если у вас много клиентов, дочерние элементы apache будут складываться, потребляя память / процессор и, вероятно, выходя за пределы дочерних элементов, что делает эту ситуацию DoS.

1а) я не вижу ни одного.

1b) Да, php модуль намного быстрее по своей конструкции. Но эта скорость видна только в математике, а не в файловых операциях. Поэтому я рекомендую избавиться от apache и использовать nginx + FastCGI.

1c) Не имеет большого значения, однако я полагаю, что это должен быть первый сервер в цепочке, так как это более удобно.

2) да. Скорость (с любым клиентом), статические файловые операции, кеширование, меньшее потребление памяти. Бьюсь об заклад, вы увидите разницу без каких-либо инструментов для сравнения.

3) Я бы сказал, что не вижу необходимости использовать CloudFlare CDN. Если бы вам это действительно нужно - вы бы уже избавились от apache. Поскольку вы этого не сделали - это означает, что нагрузка на ваши веб-серверы низкая. Но если вы настаиваете на ответе на вопрос - я сомневаюсь. Я сомневаюсь, что действительно нужно что-то делать, если ты доволен тем, как обстоят дела сейчас. Я говорю это без какого-либо сарказма.

Другие вопросы по тегам