Настройка nginx как Фронтенд(Frontend) к Apache Часть 1: Введение
Nginx все больше завоевывает просторы интернета. По заметкам на хабре известно, что даже ФБР в США использует этот вэбсервер и недавно проект получил крупные инвестиции в денежном выражении. Крупные вэбсервисы, порталы рунета также используют его. Причина его резкого роста в том, что nginx очень маленький и быстрый сервер. Это преимущество позволяет:
1. Экономить огромную долю ресурсов сервера, а следовательно и денег.
2. Ускорить загрузку сайта, что очень важно, т.к. основные поисковые системы начали учитывать скорость при ранжировании запросов.
3. В общем произвести приятное впечатление у пользователе которые не ждут долгую загрузку страницы и увеличивая таким образом количество отказов.
4. Создавать очень гибкую архитектуру для крупных проектов.
При полном переносе крупных проектов может возникнуть проблемы, так как работа nginx и Apache немного различаются в своей работе. Но нет необходимости переносить сразу все на nginx, можно переходить в несколько этапов.
Мне на своих сайтах при увеличении посещаемости пришлось решать проблему ограниченных ресурсов. Когда все возможности оптимизации в скриптах были исчерпаны возникла необходимость и в оптимизации самого вэбсервера. По рекомендациям из интернета решил приступить к внедрению nginx. Это пришлось делать в один из случаев падения сервера.
В этом топике опишу только смысл работы этих серверов в связке. Во второй части опишу пример внедрения.
Как известно Apache по умолчанию сидит на порту 80 и смотрит во внешнюю сеть, т.е. в интернет и отвечает в него. Т.о. при установке nginx нужно придумывать хитрость при которой. Nginx будет заменять Apache на 80 порту и отвечать клиенту на запросы отдавая статический контент, но при исполнении каких либо скриптов отправлять запросы apache.
Для работы такой связки необходимо перенести apache на другой порт и очень важно при этом заставить слушать его не внешний интерфейс который смотрит в интернет, а loopback 127.0.0.1.
1. Экономить огромную долю ресурсов сервера, а следовательно и денег.
2. Ускорить загрузку сайта, что очень важно, т.к. основные поисковые системы начали учитывать скорость при ранжировании запросов.
3. В общем произвести приятное впечатление у пользователе которые не ждут долгую загрузку страницы и увеличивая таким образом количество отказов.
4. Создавать очень гибкую архитектуру для крупных проектов.
При полном переносе крупных проектов может возникнуть проблемы, так как работа nginx и Apache немного различаются в своей работе. Но нет необходимости переносить сразу все на nginx, можно переходить в несколько этапов.
Мне на своих сайтах при увеличении посещаемости пришлось решать проблему ограниченных ресурсов. Когда все возможности оптимизации в скриптах были исчерпаны возникла необходимость и в оптимизации самого вэбсервера. По рекомендациям из интернета решил приступить к внедрению nginx. Это пришлось делать в один из случаев падения сервера.
В этом топике опишу только смысл работы этих серверов в связке. Во второй части опишу пример внедрения.
Как известно Apache по умолчанию сидит на порту 80 и смотрит во внешнюю сеть, т.е. в интернет и отвечает в него. Т.о. при установке nginx нужно придумывать хитрость при которой. Nginx будет заменять Apache на 80 порту и отвечать клиенту на запросы отдавая статический контент, но при исполнении каких либо скриптов отправлять запросы apache.
Для работы такой связки необходимо перенести apache на другой порт и очень важно при этом заставить слушать его не внешний интерфейс который смотрит в интернет, а loopback 127.0.0.1.
В итоге можно будет снизить общую загрузку сервера. Apache будет загружаться только при обработке интерактива на сайте Разница в памяти между nginx и Apache в 15 раз по моим наблюдениям. А общий выигрыш от моего внедрения nginx как frontend оказался в 30 процентов(сравнивал загрузку памяти).
Комментарии
Отправить комментарий