nginx [engine x] — это HTTP-сервер и почтовый прокси-сервер. Разработка nginx началась весной 2002 года, а осенью 2004 года вышел первый публично доступный релиз. На данный момент nginx работает на нескольких достаточно нагруженных сайтах под FreeBSD и Linux, в том числе на большинстве серверов Рамблера. [источник]
Установить на функционирующий сервер с любым количеством виртуальных хостов достаточно просто. В этом случае лучший режим работы nginx – это вэб-акселлератор (реверсный прокси). nginx принимает запросы от клиентов, статичные (например, отдача изображений, flash-объектов, css-файлов) отрабатывает максимально быстро, в том числе – с использование кэширования данных в памяти. Запросы динамических объектов (страницы, генерируемые php) перенаправляются “бэкэнду” (backend), которым является apache+mod_php.
Мы столкнулись с необходимостью реализовать подобную схему на нашем сервере, который обслуживает блоги на KHARKOV.RU. Рост количества запросов приводил время от времени к клинчу, когда не хватало ресурсов на генерацию страниц, запросы продолжали поступать, а увеличение лимитов и количества процессов apache уже не приводили к желаемому результату. Были проделаны следующие шаги:
- apache был перенесен на другой порт (например, 8100 вместо 80)
- установлен и настроен nginx для приема соединений на стандартный порт 80.
Конфигурация nginx достаточно проста:
user nobody;
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] $request '
'"$status" $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for" $gzip_ratio';
#access_log logs/access.log main;
sendfile on; # использование на freebsd снижает нагрузку
keepalive_timeout 65; # больше ставить нет смысла, меньше-можно
gzip on; # экономим трафик посетителей
gzip_min_length 1000; # слишком маленькие данные не сжимаем - нет смысла
gzip_proxied expired no-cache no-store private auth;
server {
listen 80;
server_name _; # принимаем запросы для всех виртуальных хостов
server_name_in_redirect on;
access_log /var/log/nginx-access.log main;
location / {
proxy_pass http://127.0.0.1:8100/; # перенаправление запросов на backend
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr; # адрес клиента отдается в заголовке
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 10m;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html { # ошибки отдаем локально
root /usr/local/www/nginx;
}
}
}
Даже такая простая установка позволила снизить нагрузку на сервер на 30%, существенно уменьшить требования к памяти.
В следующих статьях на тему использования nginx мы расскажем об использовании php в режиме FastCGI и прочих используемых нами технологиях.
Метки: nginx

Наконец то руки дошли до веб сервера.
Установил nginx как ускоритель apache, все латает, в то время как apache еле справлялся с запросами.
Именно так. Если не нравится nginx – можно также посмотреть в сторону lighttpd, от тоже использует неблокируемую архитектуру. apache – рудимент, его использовать в современном интеренете на мало-мальски нагруженных сайтах нельзя. Т.е. в идеале уйти от апача на бэкэнде – отрабатывать все nginx.
Вопрос в сторону nginx
У нас есть поисковая система по базе с ценами. База хранится в MS SQL весит 50 гиг, лежит на отдельной машине под управлением Windows 2003 Enterprise.
собственно на другой машине стоит веб-сервер под управлением апач +пхп… запросы приходят на него он отдает форму поиска… и оттуда же направляет в базу даных запросы на получение и возврата результатов к себе.. формирует страницу с результатами и отдает клиенту.
Как я упоминал – база весит 50 гиг. Памяти в машине с базой 16 гиг.
Количество httpd -k start держится в пределах 50 штук… после этого начинаются залипания.. никакой грифики людям не отдается все очень просто сделано в виде формы с полями …
Может ли помочь в этом случае мне нгинкс ???