nginx и gzip_static: еще один способ снизить нагрузку на сервер

Чем меньше размер страниц сайта, тем меньше расход трафика, загрузка канал и выше скорость загрузки страниц. Один из самых распространённых способов уменьшения страниц — перед отправкой пользователю.

В Apache для этих целей используется mod_deflate, в  — ngx_http_gzip_module.html. В других web-серверах используются похожие решения.

Что mod_deflate, что ngx_http_gzip_module используют сжатие «на лету» — файл сжимается перед отдачей пользователю. Но сжатие — операция, нагружающая процессор, и чем выше степень сжатия, тем больше . Это не было бы проблемой, если бы один и тот же файл не приходилось сжимать каждый раз заново. Далее »

Автор: , опубликовано в: nginx, Администрирование, комментариев: 8
8
Ноя
2009

Модуль поддержки tcpwrappers для nginx

 — система контроля доступа, используемая для ограничения доступа к серверам на UNIX-подобных операционных системах (, BSD). Контроль доступа может осуществляться, например, по имени хоста (полному или частичному), адресу, подсети. Подробности приведены здесь.

TCP Wrappers очень удобно использовать с программами для защиты от червей (BlackHosts, DenyHosts, Fail2ban), в частности, для защиты от HTTP-сканирования.

Огромным достоинством TCP Wrappers является возможность динамической конфигурации списков контроля доступа (что избавляет от необходимости перезапускать защищаемый сервис) и простота файлов конфигурации (это субъективно).

К сожалению, не поддерживает TCP Wrappers из коробки. К счастью, это можно исправить. Далее »

Автор: , опубликовано в: C/C++, nginx, Администрирование, Безопасность, комментариев: 2
10
Окт
2009

ngx_drop_privs: принцип минимальных привилегий в nginx

 — замечательный web-сервер, но, как и практически любой программный продукт, не свободен от ошибок, временами весьма критических.

Архитектура nginx такова, что обычно имеется один привилегированный процесс (запускаемый от всемогущего root) и один или более рабочих процессов (обычно работающих от имени непривилегированного пользователя). Тем не менее, я видел конфигурации, в которых все процессы nginx работают под привилегированным пользователем. Один из примеров — многопользовательский сервер, Document Root сайтов на котором имеет права вида 0700 (запускать несколько nginx и настраивать проксирование — тоже не лучший выход).

Кроме того, за последние неполные пять лет в nginx найдено 112 ошибок (segmentation fault), некоторые из которых теоретически могут дать возможность выполнения произвольного кода в системе (wget http://sysoev.ru/nginx/changes.html -q -O - | grep segmentation | wc -l).

Я не знаю, все ли ошибки затрагивали только рабочие процессы, либо были ошибки в главном процессе — рисковать не хочется. Так и родилась идея написать модуль для nginx — . Далее »

Автор: , опубликовано в: C/C++, Linux, nginx, Безопасность, комментариев: 3
23
Сен
2009

oDesk Time Tracker Vulnerabilities

  1. Time Tracker does not verify the certificate of the host it connects to thus becoming vulnerable to various Man-in-the-Middle attacks (if an attacker is able to spoof DNS for team.odesk.com — say, by setting up a fake DHCP and DNS servers in the local network — or posion the DNS cache or whatever — this is doable). Далее »
Автор: , опубликовано в: Безопасность, комментариев: 3
15
Июн
2009

nginx 0.8.0

Вчера вышла новая версия web-сервера  — 0.8.0, а версия 0.7.59 объявлена стабильной. Далее »

Автор: , опубликовано в: nginx, комментариев: 4
3
Июн
2009

nginx Compatibility: делаем WordPress дружелюбнее к nginx

Переведя несколько сайтов с Apache на , уже который раз встречаю подводные камни. Один из них — нежелание понимать код редиректа, другая — постоянные попытки использовать PATHINFO-пермалинки вместо «нормальных» (pretty permalinks).

Неудобно каждый раз лезть в код WordPress, чтобы поправить очередную несовместимость, поэтому я написал небольшой . Далее »

Автор: , опубликовано в: nginx, Плагины WordPress, комментариев: 7
14
Апр
2009

Самый свежий nginx для Ubuntu/AMD64

На данный момент в моём репозитории находится 0.8.29.

Поддерживаемые релизы:

Поддерживаемые архитектуры:

  • AMD64;
  • i386.
[-]
View Code Bash
sudo -i
echo "deb http://deb.sjinks.pro/ jaunty main" >> /etc/apt/sources.list
echo "deb-src http://deb.sjinks.pro/ jaunty main" >> /etc/apt/sources.list
wget http://deb.sjinks.pro/67C02A558F688141.pub -O 67C02A558F688141.pub
apt-key add 67C02A558F688141.pub
aptitude update
aptitude install nginx

В коде выше замените jaunty кодовым именем своего дистрибутива (dapper, hardy, intrepid или karmic).

Работает! :-)
Далее »

Автор: , опубликовано в: Linux, nginx, комментариев: 19
14
Мар
2009

WordPress, FastCGI и редирект 301: часть 2

Более изящное решение, нежели представленное в первой части (WordPress, FastCGI и редирект 301).

В первой части предлагалось при использовании web-сервера закомментировать проверку на SAPI (if ( php_sapi_name() != 'cgi-fcgi' )). Однако есть лучшее решение. Далее »

Автор: , опубликовано в: nginx, Патчи, комментариев: 3
13
Мар
2009

WP Super Cache + nginx: замена правил mod_rewrite

Сборная солянка с нескольких форумов (ссылок, к сожалению, не дам, но Google может помочь); данная конфигурация является рабочей.
Далее »

Автор: , опубликовано в: nginx, WordPress, комментариев: 7
27
Фев
2009

WordPress + nginx: запрет выполнения PHP-файлов в uploads

В Apache проблема решается просто: в каталог uploads помещается .htaccess следующего содержания:

[-]
View Code Apache configuration
php_value engine off

В .htaccess не предусмотрен (что можно рассматривать и как достоинство, и как недостаток), поэтому там нужно применить несколько другой подход. Далее »

Автор: , опубликовано в: nginx, WordPress, Безопасность, комментариев: 2
25
Фев
2009