Просьба оставить комментарий





Если вам понравился или не понравился топик. Я что то забыл или не дописал, то вы можете оставить свой комментарий и я постараюсь исправить это в ближайшее время.

воскресенье, 5 февраля 2012 г.

Настройка 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.


В итоге можно будет снизить общую загрузку сервера. Apache будет загружаться только при обработке интерактива на сайте  Разница в памяти между nginx и Apache в 15 раз по моим наблюдениям. А общий выигрыш от моего внедрения nginx как frontend оказался в 30 процентов(сравнивал загрузку памяти).

Комментариев нет:

Отправить комментарий