Совет по запуску nginx или nginx + apache [дубликат]

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

Я администрирую VPS с некоторыми веб-серверами и высоким трафиком.

Технические характеристики системы: x2 Xeon E2620 с 2 ядрами, 18 ГБ оперативной памяти и 800 ГБ жесткого диска.

Первым шагом, когда я получил полный доступ, была проверка конфигурации сервера.

Система содержит:

  • Apache2
  • php-cgi 5.3.3 (prefork)
  • MySQL 5.1
  • Prestashop (1.4 - 1.6)
  • APC

На первый взгляд (позже подтверждено ), настройки сервера и архитектура системы не оптимальны.

Сервер почти все время занят, а доступ в Интернет очень медленный.

Итак, я думаю, у меня есть несколько альтернатив, чтобы обойти эту ситуацию, потому что трафик только растет.

  • Оптимизировать текущие настройки можно было только временным решением.

Это означает настройку Apache, preforks, MySQL, удаление ненужного программного обеспечения ... и т. Д.

ИЛИ

  • Измените архитектуру системы, думая о масштабируемости. (Лучшее временное решение, прежде чем вкладывать больше $$ в горизонтальное масштабирование)

Моя идея, и я сомневаюсь, что вы порекомендуете для масштабирования.

nginx, php-fpm, varnish, APC ИЛИ nginx, работающие вместе с Apache.

Я думаю, что сначала лучше, потому что все они работают на одной машине.

Спасибо.

0
задан 19 February 2016 в 10:58
1 ответ

Итак, это довольно широкий вопрос, так что это будет общий ответ. Но да, вам будет намного проще масштабировать nginx. Я бы порекомендовал вам заменить Apache и mod_php на nginx и php-fpm . Я бы также обновился до PHP 5.6.x и начал использовать модуль Zend Opcache, включенный в него, вместо APC. Если вы также используете APC для «кеширования пользователя», а не только для кэширования кода операции,вы можете заменить функционал на модуль «APCu». Varnish действительно может быть полезен для повышения производительности обслуживания статических ресурсов, но я бы начал с низко висящих плодов.

Когда вы используете php-fpm , ваши PHP-рабочие могут масштабироваться независимо от ваши входящие HTTP-соединения, которые могут дать вам преимущество в отношении использования памяти. Кроме того, веб-сервер может использовать потоки вместо процессов для обработки запросов, поскольку PHP работает вне области памяти веб-сервера.

С помощью метода mod_php , который вы в настоящее время используете, тот же процесс, который принимает , ожидает и обслуживает запрос, также запускает интерпретатор PHP и сохраняет его в памяти до тех пор, пока запрос не будет полностью обработан.

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

0
ответ дан 5 December 2019 в 10:41

Теги

Похожие вопросы