В век компьютерных технологий невольно задумываешься – как далеко шагнул прогресс. Ведь как быстро развиваются серверные технологии…
Очень популярным ныне является в качестве прокси – сервера такое приложение, как Nginx. Что такое веб и прокси - сервер Nginx, и как работает связка Nginx + Apache, здесь мы и попытаемся найти ответ на некоторые вопросы.
Веб-серверы Apache поступили в распостранение в 1995 году. Этот сервер был удобен тем, что являлся продуктом с открытым исходным кодом. Веб-сервер был доступен в течение многих лет, и имеет так много пользователей, что под него было написано много модулей, дабы расширить его функциональность, причем большинство из них с открытым исходным кодом.
Но Apache замедляется при большой нагрузке, из-за необходимости загрузки новых процессов, тем самым потребляя больше памяти компьютера. Apache также отказывает в новом соединении, когда трафик достигает предельного уровня процессов, настроенных администратором. Серверная технология Nginx, напротив, является продуктом с открытым исходным кодом, написанная для решения некоторых вопросов производительности и масштабируемости в связке с Apache. Разработчики Nginx говорят, что их веб-сервер был написан для решения проблемы замедления работы процессов при большом количестве запросов к серверу.
Как работает Apache и почему он имеет ограничения
Apache создает процессы и потоки для обработки дополнительных соединений. Администратор может настроить на сервере для управления максимальное количество допустимых процессов. Эта конфигурация меняется в зависимости от доступной памяти на машине. Слишком много процессов, вызванных в памяти, может привести к перегрузке сервера. Поэтому, когда предел процессов достигается, Apache отказывается выполнять дополнительные соединения.
Технология Nginx работает несколько по-другому, чем Apache. Nginx не создает новые процессы для каждого веб-запроса, а весь смысл заключается в том, что один рабочий процесс инициируется для каждого процессора отдельно. Каждый из этих процессов является однопоточным. Каждый работник может обрабатывать тысячи одновременных подключений. Он делает это асинхронно с одним потоком, а не с помощью многопоточного программирования.
Nginx состоит из модулей, которые включены во время компиляции. Это означает, что пользователь загружает исходный код и выбирает, какие модули будут использоваться для работы. Сервер не имеет модуля обработки PHP, поскольку Nginx может обрабатывать PHP код в себе.
Использование *Nginx + Apache.*
Apache известен своей силой, а Nginx - скоростью. Это означает, Nginx может обслуживать статический контент быстрее, но Apache включает в себя модули, необходимые для работы с back-end серверов и языков выполнения сценариев.
Связка *Apache + Nginx* может использоваться в качестве прокси-серверов, но с использованием Nginx как прокси-сервера, а приложения Apache - в качестве бек-енда. Nginx включает в себя передовые способности балансировки нагрузки и кэширования.
Здесь мы дали некоторые разъяснения о том, как Nginx отличается от Apache и о возможности применения одного или их обоих в связке, и какой из этих двух серверов более соответствует вашим потребностям. Таким образом, вы можете выбрать лучшее решение для ваших нужд.