Pull to refresh

Установка и настройка Django на «боевом» сервере с CentOS 5

Django *
Я делаю на Django Энциклопедию языков программирования, о которой уже писал на Хабре. За время работы сайта выяснилось, что нужен свой выделенный сервер для большей производительности и стабильности. Пока что взял дешевый сервер с 1.8 ГГц процессором и 512 Мб памяти.

В этой статье я расскажу об установке и настройке на этом сервере Django с mod_python для Apache, с кэшированием memcached и lighttpd для статических файлов.
Читать дальше →
Total votes 23: ↑18 and ↓5 +13
Views 11K
Comments 14

OpenID провайдер с помощью phpMyID

Lumber room
Захотел я себе OpenID идентификатор. Чтобы иногда писать комментарии на других сайтах, допускающих OpenID. Сначала я подумал, что для этого нужно установить Wordpress с каким-то плугином. Я ошибался. Для создания на своём сайте OpenID провайдера достаточно маленькой библиотеки phpMyID

phpMyID — это однопользовательский провайдер идентификации для OpenID. Инструкция по установке есть в дистрибутиве, но всё сводится к простому. закачиваете два php файла MyID.php и MyID.config.php и правите MyID.config.php (Ну или сначала правите, потом закачиваете, кому как удобнее). Меняете параметр auth_realm на что-то своё (эта строка потом будет в приглашении пароля в браузере), меняете auth_username на свой любимый логин, генерируете строку (я предполагаю, что у вас есть доступ к шеллу):

echo -n 'свой_логин:свой_realm:свой_пароль' | openssl md5

Сгенерированную строку вставляете в параметр auth_password.

Для начала — всё. Теперь ваш OpenID будет domain.tld/dir/phpMyId.config.php. Проверьте.

Но меня это неудовлетворило. Я подправил конфиг lighttpd, добавив правило подмены урлов:

url.rewrite-once = (
...
"^/alexey(.*)$" => "/MyID.config.php$1"
...
)

и получил себе OpenID: boyko.km.ua/alexey

Можно добавить и второго пользователя, скопировав файл phpMyId.config.php с другим именем, и настроив ещё одно правило подмены урла в lighttpd.conf

Не забудьте прочитать README из дистрибутива phpMyId
Total votes 29: ↑26 and ↓3 +23
Views 388
Comments 20

Потоковая обработка видео при помощи lighttpd/nginx, Mplayer(Mencoder), Ruby, Flvtool2

Working with video *
Как только на сайте или портале появляется необходимость в видео-сервисе, сразу же перед разработчиками встает вопрос о конвертации загружаемых пользователями ресурса видео-файлов в понятный браузеру формат флеш-видео.

Исследование данной проблемы нашло отражение в следующей статье.

Этапы внедрения потокового видео:
Читать дальше →
Total votes 21: ↑20 and ↓1 +19
Views 1.7K
Comments 27

Доставка видеоконтента пользователям

Website development *
[ Часть I. Доставка видеоконтента ] [ Часть II. CDN своими руками ]

Что такое «контент» для видеохостинга? Во-первых, контент видеохостинга – это просто видео, которое представляет собой набор файлов в различных форматах, в частности, в формате FLV для просмотра пользователем через Flash Player. Эти файлы статичны, видеохостинг при загрузке пользователем видеоролика осуществляет конвертацию во все требуемые форматы с необходимым битрейтом. Хранение такого контента — это хранение обычных файлов, только довольно большого размера. Отдача контента — это, по сути, организация скачивания файлов.
Во-вторых, контент видеохостинга — это «живые» потоки или вещания. Вещания не записываются на диск, не происходит их конвертация, потоки раздаются клиентам с учетом пропускной способности каналов (происходит пропуск пакетов, если канал клиента недостаточен для получения потока вещания в полном качестве). Отдача контента в данной ситуации — это раздача потока на большое количество подключенных пользователей (тысячи смотрящих).
Читать дальше →
Total votes 44: ↑44 and ↓0 +44
Views 9.3K
Comments 79

Хитрости с логированием в однопоточных неблокирующих серверах.

Server optimization *
Хочу рассказать об очередном результате моих изысканий в области оптимизации производительности Web-серверов.
На этот раз речь пойдет об оптимизации сложного логирования в однопоточном неблокирующем вэб-сервере.
Читать дальше →
Total votes 69: ↑61 and ↓8 +53
Views 2.5K
Comments 105

Защищаемся от HTTP DDoS и прочих Хабраэффектов

Information Security *
Простой способ защиты от HTTP DDoS — включить syn-cookies и заблокировать подонков. Но что делать если атакует 5к-10к хостов да еще и с динамическими IP? Тут нам на помощь придет frontend-backend архитектура c промежуточным кэшированием! Почему с промежуточным кэшированием? А потому что в моем случае от шквала запросов от frontend'а backend умирал унося за собой систему.
Читать дальше →
Total votes 160: ↑152 and ↓8 +144
Views 10K
Comments 55

Собираем супервебморду средствами lighttpd 1.4.x

System administration *
К написанию, данного хабратопика, меня сподвиг вот этот пост.

Итак нам надо получить доступ ко всем домашним девайсам с вебмордами например с работы из корпоративной сети, где доступ разрешен только на стандартный 80 порт, пусть это будет WEB камера (10.0.1.3), вебморда geexbox (10.0.1.4) и ADSL маршрутизатор через который мы получаем IPTV (10.0.1.5:8080).
Читать дальше →
Total votes 8: ↑5 and ↓3 +2
Views 4.5K
Comments 2

Игры в OLTP

Nginx *
В последнее время на Хабре стала популярной тема реализации высокопроизводительных приложений. Решили тоже немножко поэкспериментировать в этом направлении и поделиться текущими результатами наших изысканий.

Подопытный «Hello, world!» представляет собой простейшую OLTP систему:



Требования к производительности и отказоустойчивости являются ключевыми для подобных систем. Поэтому поиск решения поставленной задачи осуществлялся в направлении: C, C++, fastcgi, nginx, lighttpd, oracle. В первую очередь нам было любопытно попробовать различные варианты построения OLTP на данных технологиях, а так же измерить производительность и пиковые нагрузки.

Подробности под катом...
Total votes 39: ↑36 and ↓3 +33
Views 2.7K
Comments 31

мертворожденный lighttpd 1.5

System administration *
Финальная версия популярного веб-сервера lighttpd ветки 1.5, прямого конкурента российского nginx, никогда не будет выпущена, судя по комментарию разработчика в блоге:

@Ted curl -I lighttpd.net — thats that we´re working on in the future. Thats why we can only support one stable version in the future for 1.x and that´ll be 1.4.x. 1.5 was never supposed to be released.

Разработка ветки 1.5 началась почти три с половиной года назад, но после прекращения активного участия Яна в проекте практически остановилась. Новые разработчики решили сконцентрировать свои усилия на переписанной с нуля ветке 2.0.
Сайт lighttpd.net работает уже на версии 2.0
Total votes 14: ↑7 and ↓7 0
Views 1.2K
Comments 5

Январьский отчет Netcraft о популярности http серверов

Website development *
Компанией Netcraft были опубликованы результаты январского исследования популярности http-серверов. Было проверенно около 206 миллионов сайтов. По сравнению с прошлым месяцом число активных сайтов уменьшилось на 30 миллионов, по большей части благодаря переходу китайского сервиса блогов qq.com в закрытый режим.
Дальше
Total votes 6: ↑5 and ↓1 +4
Views 607
Comments 13

Интернет 2009 в цифрах и фактах

Research and forecasts in IT *
Когда-то, еще в школе, жесткий диск на 42 Мб казался мне огромным. Сейчас же на дворе год 2010й и уже никого не удивишь оптическим интернетом дома с каналом в 100 мегабит или ценой $49 за месячную аренду выделенного сервера. Прогресс не стоит на месте, посмотрим же на цифрах, как изменилась Сеть за прошедший 2009й год.
Описанная под хабракатом картина была получена после анализа последних отчетов компаний Pingdom, Domain IP History и NetCraft.
Читать дальше →
Total votes 93: ↑92 and ↓1 +91
Views 682
Comments 112

Критическая уязвимость в lighttpd, DoS

Information Security *

С официального сайта



Security Announce: slow request DoS/OOM attack
February 1st, 2010

Li Ming reported a serious bug in lighttpd:

If you send the request data very slow (e.g. sleep 0.01 after each byte), lighttpd will easily use all available memory and die (especially for parallel requests), allowing a DoS within minutes.

As far as we know all versions are affected.

Перевод



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

Насколько известно разработчикам, все версии сервера содержат баг.

ссылка на баг в трекере и патч
Пререлиз 1.4.26 c исправлением (via eugeneorlov)
Исправление для Debian (via esten)

Будьте бдительны!
Total votes 46: ↑40 and ↓6 +34
Views 1.3K
Comments 42

Июльский отчет компании NetCraft о популярности http-серверов

Open source *
Компания Netcraft опубликовала результаты майского исследования популярности http-серверов, построенного на основе автоматизированной проверки более 205 миллионов сайтов.
Читать дальше →
Total votes 9: ↑6 and ↓3 +3
Views 652
Comments 5

6 способов убить Ваши сервера — познаем масштабируемость трудным путем

Server optimization *
Translation
Узнать, как отмасштабировать Ваше приложение, не имея при этом никакого опыта, — это очень нелегко. Сейчас есть много сайтов, посвященных этим вопросам, но, к сожалению, не существует решения, которое подходит для всех случаев. Вам по-прежнему необходимо самому находить решения, которые подойдут под Ваши требования. Так же, как и мне.

Несколько лет назад ко мне пришел мой босс и сказал: «У нас есть новый проект для тебя. Это перенос сайта, который уже имеет 1 миллион посетителей в месяц. Тебенеобходимо его перенести и убедиться, что посещаемость может вырасти в будущем без всяких проблем.» Я уже был опытным программистом, но не имел никакого опыта в области масштабируемости. И мне пришлось познавать масштабируемость трудным путем.
Читать дальше →
Total votes 158: ↑148 and ↓10 +138
Views 16K
Comments 73

Вы наверное шутите, мистер Дал, или почему Node.js — это венец эволюции веб-серверов

Website development *
Sandbox
WTF is Node.js?

Node.js — вещь, вокруг которой сейчас много шума, восторженных отзывов и гневливых выкриков. При этом, по моим наблюдениям, в умах людей закрепилось следующее представление о том что же такое Node.js: «это штука, позволяющая писать на JavaScript на серверной стороне и использующая JavaScript-движок от Google Chrome». Поклонники языка восторженно вздохнули: «Ах! Сбылось!», противники же процедили сквозь зубы: «Ну вот только еще этой ерунды с прототипами и динамической типизацией нам на серверах не хватало!». И дружно побежали ломать копья в блоги и форумы.

При этом многие представители обоих лагерей придерживаются мнения, что Node.js — это эзотерическая игрушка, веселая задумка для переноса языка браузерных сценариев на «новые колеса». Дабы быть до конца честным, признаюсь, что я так же придерживался подобной точки зрения. В один прекрасный момент, я набрался духу и решил «копнуть поглубже». Выяснилось, что создатель Node.js Райан Дал далеко не фанатик, а человек, пытающийся решить реальную проблему. А его творение — не игрушка, а применимое на практике решение.

Так что же такое Node.js?
Total votes 243: ↑235 and ↓8 +227
Views 28K
Comments 252

Windows + Lighttpd + Python краткая инструкция по запуску

Python *
Под катом краткая инструкция по установке и настройке вышеуказанной связки. Через поиск не нашел, когда ставил для себя пришлось порыться по инету.

Читать дальше →
Total votes 30: ↑23 and ↓7 +16
Views 12K
Comments 13

Windows + Lighttpd + WSH

Website development *
Написав статью от подключении Python к Lighttpd в Windows, задумался о применении других скриптовых языков, например уже встроенных в систему. В windows есть так называемые Windows Script Host, в которые стандартно входят VBScript и JScript.
Читать дальше →
Total votes 9: ↑7 and ↓2 +5
Views 1.9K
Comments 4
1