Авторизация

Вы можете войти через одну из учетных записей:

ИЛИ



Напомнить пароль
Регистрация
+1.34

avatar Nginx

Блог поддержки веб-сервера «engine X» от Игоря Сысоева.

Новости, проблемы, решения, модули итд

Администраторы (1): Diesel
Модераторы (0): Модераторов здесь не замечено
Читатели (4): Serjio android BUM shell

NginxТрансформация и перевод на другие языки web-сайтов на лету при помощи Nginx

Как и в прошлый раз мы будем трансформировать сайт example.com в example.ru. Не буду рассказывать о настройке и установке Nginx (об этом много статей), а лучше расскажу о конкретных полезных настройках. Читать дальше
  • +1
  • Diesel
  • 03 марта 2011, 22:16
  • add twitter 

NginxУстановка и настройка: Nginx + php5-fpm

В данной заметке, будет показано как поставить связку Nginx + php5-fpm (php5.3) на Debian Lenny и настроить безопасную конфигурацию.

Установка и настройка

Важно: все команды от root'а.
Добавляем репозитарии и генерируем ключи:
echo "deb http://backports.debian.org/debian-backports lenny-backports main" >> /etc/apt/sources.list
echo "deb http://php53.dotdeb.org stable all" >>   /etc/apt/sources.list
gpg --keyserver keys.gnupg.net --recv-key 89DF5277 && gpg -a --export 89DF5277 | apt-key add -

Обновляем:
aptitude update

Читать дальше
  • +1
  • Diesel
  • 03 февраля 2011, 22:47
  • add twitter 

NginxМодуль ustats: статистика запросов к бэкендам

Приветствую!

В этой статье речь пойдет о новом модуле для nginx'а, цель которого — сбор и предоставление пользователю статистики обращений сервера к бэкендам. Под катом — подробности, примеры использования, скриншоты, ссылки, а также история создания. Читать дальше
  • +1
  • Diesel
  • 23 декабря 2010, 12:56
  • add twitter 

NginxИспользуем Nginx, как кеширующий сервер

В этой статье рассмотрим применениt Nginx’a в качестве кеширующего сервера. Подробно о HTTP кеширования написано в статьях о продвинутом кеширующем сервере Varnish. Сразу следует отметить, что Nginx полностью не заменяет Varnish по функционалу и возможностям, но тем не менее продставляет очень хорошое решение. Учитывая великолепную работу этого Web-сервера, наличие функциональности кеширования делает возможным подключить ее к своему сайту буквально за 2 минуты.

Что кешировать?

В предыдущих статьях уже неоднократно упоминалось про суть HTTP кеширования. Если не учитывать более сложных случаев, когда нужно учитывать персонализацию страниц, почти на всех сайтах можно кешировать странички для неавторизованных пользователей. Этот метод хорошо подойдет для информационных ресурсов (например, для этого блога).

Самый простой случай — кешировать страницы для неавторизованных пользователей. Время кеширования обычно выбирают небольшое — 5…10 минут. Тем не менее, при большой нагрузке, это может сэкономить огромное количество ресурсов.

Читать дальше
  • +1
  • android
  • 04 декабря 2010, 22:39
  • add twitter 

NginxNginx + Memcached + SSI - кеширование страниц и блоков (partials)

В одной из предыдущих статей мы рассмотрели, каким образом можно реализовать кеширование страниц с помощью Varnish и ESI. В этой статье рассмотрим альтернативное решение — на основе двух суперзнаменитых продуктов — nginx и memcached.

Оба не нуждаются в представлении, а о том, как на основе их можно значительно увеличить эффективность работы Вашего сайта, поговорим ниже.

Зачем нужно кешировать страницы?

Довольно детально принципы кеширования страниц и блоков были рассмотрены в предыдущей статье (Varnish + ESI).

В качестве краткого повторения, несколько основных идей и преимуществ кеширования на уровне странц:

  • Кешируя страницы на отдающем сервере, Вы освобождаете ощутимое количество ресурсов на бекендах
  • В случае медленных страниц, значительно уменьшается время ожидания страниц Вашего сайта (ускоряется его работа)
  • Как показывает практика, во многих случаях внедрять систему кеширования странц в готовый проект легче, чем систему кеширования запросов

Читать дальше
  • +1
  • Diesel
  • 24 ноября 2010, 16:11
  • add twitter 

NginxИспользуем Nginx как “long polling” (Comet) сервер

Принцип “Long Polling” (или “Comet“) позволяет сделать возможным установление постоянного соединения клиента с Web приложением и также периодичной отправки данных клиенту в рамках этого соединения (без необходимости клиента постоянно делать HTTP запросы для проверки новых данных). Другими словами, эта модель позволяет реализовать постоянные HTTP соединения для получения данных порциями. Наиболее популярное применение — чаты, твиттеры и другие live-updated потоки — клиент постоянно “слушает” сервер на предмет появления новых сообщений, и как только новые сообщения появляются — они мгновенно доставляются ему.

Сам принцип не несет в себе инноваций в HTTP протоколе, т.к. этот подход реализуем обычными средствами. Проблема заключается в том, что стандартное решение — установка постоянного соединения с обычным Web сервером (а значит и с обслуживающей платформой, например php-бекендом) — крайне ресурсоемкое и не применимо на практике. Другой подход — постоянно опрашивать приложение на предмет появления новых данных является еще более ресурсоемким.

Решением этой проблеммы стали т.н. HTTP-PUSH (или comet) сервера, позволяющие облуживать огромное количество постоянных соединений эффективно расходуя ресурсы. Как они устроены и как применяются на практике?
Читать дальше
  • +1
  • Diesel
  • 18 ноября 2010, 21:00
  • add twitter 

NginxNginx Log Analyzer

Nginx Log Analyzer — небольшая утилита для анализа логов nginx. Полезный инструмент для обнаружения слабых (а точнее медленных) мест Вашей Web системы, если Вы пользуетесь этим популярным Web-сервером. Использование этой утилиты полезно для оценочного отлавливания медленных скриптов (и не только скриптов).
Читать дальше
  • +2
  • Serjio
  • 17 ноября 2010, 23:06
  • add twitter 

NginxМодуль проверки на Accept: image/*

Суть идеи в том, что если в заголовках браузера присутствует Accept: image/* то переменная $isaccept устанавливается в 1.

Как у нас часто водится, за работу не заплатили, так что модуль может принадлежать всем и каждому (с сохранением авторских прав). Лицензия BSD. Исходники здесь

Проверку осуществлял черезе лог, часть конфига:

http {

log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for" accept=$isaccept ';

access_log logs/access.log main;
error_log logs/error.log debug;
....
}


некоторый вывод лога из разных браузеров:

127.0.0.1 - - [30/Oct/2010:03:00:58 +0400] "GET / HTTP/1.1" 200 151 "-" "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_8; ru-ru) AppleWebKit/530.19.2 (KHTML, like Gecko) Version/4.0.2 Safari/530.19" "-" accept=0 
127.0.0.1 - - [30/Oct/2010:03:02:53 +0400] "GET / HTTP/1.1" 200 151 "-" "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; ru; rv:1.9.0.19) Gecko/2010031218 Firefox/3.0.19" "-" accept=0 

127.0.0.1 - - [30/Oct/2010:03:03:36 +0400] "GET / HTTP/1.0" 200 151 "-" "Lynx/2.8.6rel.5 libwww-FM/2.14 SSL-MM/1.4.1 OpenSSL/0.9.8m" "-" accept=0 
127.0.0.1 - - [30/Oct/2010:03:04:19 +0400] "GET / HTTP/1.1" 200 151 "-" "HTTP%20Client0.9.1 CFNetwork/438.14 Darwin/9.8.0 (i386) (MacBookPro2%2C1)" "-" accept=1


модуль можно легко доработать до анализа любых заголовков и их значений. Кто угадает какие строки надо изменить?
  • 0
  • Diesel
  • 31 октября 2010, 13:25
  • add twitter