Pull to refresh
124
0
habracut @habracut

User

Send message

Получаем IP-адреса HTTPS-клиентов с HAProxy (frontend) на Nginx (backend) в режимах HTTP и TCP-балансировки

Reading time3 min
Views54K
Довольно часто требуется балансировать нагрузку между несколькими веб-серверами. При этом, как правило, необходимо, чтобы веб-приложения получали реальные IP-адреса клиентов, а не IP балансировщика.

В случае балансировки и терминации HTTP(S)-трафика на HAProxy (Layer 7 [1]) данная задача легко решается добавлением заголовка “X-Real-IP” и его обработкой на Nginx при помощи модуля ngx_http_realip_module [2]. При балансировке TCP-трафика от HTTPS-клиентов и передаче его на веб-сервера напрямую без модификации или терминации (Layer 4 [3]) добавить данный заголовок невозможно, поэтому требуется воспользоваться возможностями, предоставляемыми Proxy Protocol [4, 5, 6].

Рассмотрим оба варианта (балансировка L7 и L4) на примере выдержек из конфигурационных файлов haproxy 1.5.9 и nginx 1.6.2

Читать дальше →
Total votes 33: ↑30 and ↓3+27
Comments14

Видео докладов с DevOps Meetup про Docker

Reading time1 min
Views16K
Недавно в офисе Badoo проходил DevOps Meetup про Docker и контейнерную виртуализацию. Делимся с вами видео докладов.

1. «Docker в Badoo: от восторгов к внедрению».
Антон banuchka Турецкий, Раудсепп Илья, Badoo.



Читать дальше →
Total votes 32: ↑32 and ↓0+32
Comments5

За один проход

Reading time7 min
Views154K
Среди задач по программированию часто попадаются такие: дана последовательность однотипных элементов (обычно это числа), требуется за один проход по ней найти какую-нибудь характеристику (среднее квадратическое отклонение, количество минимальных элементов, непрерывный участок с наибольшей суммой...) Дополнительное ограничение — последовательность может быть очень длинной, и в память не поместится. Других ограничений на элементы последовательности, обычно, не накладывается.
С этими задачами всё, более или менее, понятно: нужно найти то, что на мехмате МГУ называют «индуктивным расширением» искомой функции, и реализовать её вычисление. Если найти не удалось (требуемый объём памяти слишком велик), то задача не решается.
Но попадаются и другие задачи. В них есть дополнительные ограничения на элементы последовательности в совокупности, и эти ограничения приходится существенно использовать для решения (и проверять их не надо). Простейшая такая задача выглядит так:

Задача 1. В последовательности записаны целые числа от 1 до N в произвольном порядке, но одно из чисел пропущено (остальные встречаются ровно по одному разу). N заранее неизвестно. Определить пропущенное число

Решение очевидно: просматриваем числа, находим их количество K и сумму S. По условию, N=K+1, значит, сумма чисел от 1 до N будет равна (K+1)*(K+2)/2, и пропущенное число равно (K+1)*(K+2)/2-S. Если вы почему-то боитесь переполнений, то работайте с беззнаковыми числами (там переполнения не страшны — но будьте осторожны при вычислении (K+1)*(K+2)/2 :) ), или вместо суммы ищите XOR всех чисел.
Другие задачи
Total votes 73: ↑72 and ↓1+71
Comments56

25 полезных шорткатов для Photoshop

Reading time3 min
Views187K
Здравствуй, дорогой хабрадруг! В этой статье приводятся 25 самых полезных сочетаний клавиш (шорткатов) в Photoshop, которые вы можете использовать, для того чтобы ускорить выполнение вашей работы. Некоторые из них редко упоминаются, некоторые применяются довольно часто, а некоторые вообще доступны только в Photoshop CS5. Я надеюсь, что каждый из вас найдет новые и полезные шорткаты в этой статье. Итак, давайте же начнем!


Читать дальше →
Total votes 126: ↑103 and ↓23+80
Comments76

О чем недоговаривают производители SSD [Обновлено!]

Reading time4 min
Views52K
Это перевод статьи с сайта «The SSD Review». По правде сказать, это не совсем перевод — скорее выжимка смысла с добавлением графиков, которые говорят сами за себя. Я намеренно оставил без внимания рекламу накопителей Intel. Ну и еще один момент — автор странно передергивает, сначала показывая преобладание random 4-8k write, а затем приводя на графиках как меру производительности random 4-8k read. Ощущение, что он сам что-то недоговаривает. Будет неплохо, если кто-то из компетентных людей оставит в комментариях свое мнение.

UPD:
Достоверность информации в статье подтверждена опытным путем. Проделал опыты, написал парсер и выложил результаты хабражитель deseven, за что ему огромное спасибо. Табличку с его данными вы можете посмотреть в конце статьи.

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

Итак, в чем же обман?
Читать дальше →
Total votes 202: ↑185 and ↓17+168
Comments291

Chatroulette своими руками — 50 строк кода

Reading time1 min
Views28K
image
Пару месяцев назад я приглашал всех на веб-семинар о p2p во Flash, но сделал это слишком поздно, поэтому наверняка большое количество желающих на него не попало. Самое ценное, что я извлек из этого семинара — то, что peer-to-peer приложения во Flash делать очень легко. Правда у самого руки очень долго до этого не доходили.

Но буквально вчера руки очень сильно зачесались, и посидев ночку я разобрался в том, как работает технология p2p во Flash. Соединить видеопотоки двух flash-клиентов мне показалось мало, поэтому решил сделать что-то более интересное:
  1. Пользователь открывает страничку
  2. Выбирает тему для разговора (один из постов на главной хабры)
  3. Разговаривает со всеми, кто выбрал эту же тему

Сделал. Тут мой пример видеоконференции, исходники клиента и сервера можно скачать отсюда. Минимальные требования для примера — наличие Flash Player 10 и вэб-камеры.

UPD: Все это добро хостится на AppEngine, могут закончиться бесплатные квоты и все перестанет работать. Перекинул клиента на narod.ru. Если работать не будет — заходите сюда
Total votes 78: ↑72 and ↓6+66
Comments59

Исследование надёжности SSD дисков Intel опытным путём

Reading time5 min
Views43K
Тут я расскажу, как я вывел некоторые примерные цифры надёжности SSD Intel принадлежащих к mainstream серии и использующих MLC технологию. Почему Intel? Всё просто, у меня их две штуки. Да и на текущий момент это наиболее адекватные SSD на рынке по всем соотношениям, которые можно применить к SSD дискам, а именно: Скорость/Надёжность/Цена. Вдобавок к этому они достаточно популярны (если не самые популярные) и найти других пользователей данных SSD совсем не трудно. Ну и наконец, у компании Intel есть замечательная программа Intel SSD Toolbox, которая и помогла мне определить возможный уровень надёжности этих дисков. Исследование я провёл по чужим показаниям этой программы. К слову говоря, подошла бы любая программа, которая умеет читать S.M.A.R.T. значения с контроллера диска, но искать данные проще по названию известной программы.
Читать дальше →
Total votes 38: ↑35 and ↓3+32
Comments101

Угадай 2/3 среднего, %username%

Reading time3 min
Views23K
В 2005 году датская газета Politiken предложила своим читателям сыграть в следующую игру: каждый желающий мог прислать в редакцию действительное число от 0 до 100. Тот, чье число оказалось бы ближе всего к 2/3 от среднего арифметического присланных чисел, выигрывал 5000 датских крон (на тот момент около $800).
Читать дальше →
Total votes 105: ↑96 and ↓9+87
Comments90

Провайдер заблокировал доступ к блогу Навального по запросу ФСБ

Reading time2 min
Views1.3K
Вчера обнаружил, что не могу зайти в блог Навального. Пинги до navalny.livejournal.com не идут, в то время как остальные блоги ЖЖ работают нормально (На текущий момент ни один блог на домене livejournal.com не открывается).

После опроса знакомых, выяснилось, что только один провайдер города запретил доступ к сайту.

В техподдержке сказали дословно следующее: «Доступ к этому сайту заблокирован по требованию ФСБ».

update: На мой запрос пришел ответ от провайдера:
От кого a.kamcharov@evolife.su
Когда 17 мая 2011 в 20:50

доступ к ресурсу navalny.livejournal.com временно приостановлен по приказу ФСБ
--
Специалист технической поддержки ООО "Телеком.ру" тел. 8 (8422) 270303


update 2: Запись разговора с техподдержкой (прошу прощения за ужасное качество).

update 3: Сильно удивлен всеобщим недоверием. Считаю, что лучшим вариантом, проливающим ясность на событие, был бы звонок самого Алексея или его представителя в техподдержку провайдера. Если «аудиозапись разговора с техподдержкой тоже не кажется очень убедительной», что мешает сделать самому такую же?

update 4: В связи с появившемся официальным комментарием директора компании «Телеком.ру» с изложением точки зрения об ошибке оператора, хочу заметить, что как минимум 2 различных представителя службы техподдержки указывали на то, что причина блокировки крылась в запросе ФСБ.

У меня нет желания идти в противоречие с мнением директора, а доношу лишь известные мне факты.
Читать дальше →
Total votes 348: ↑292 and ↓56+236
Comments257

Ускорение загрузки Windows for fun and profit

Reading time4 min
Views803K
image Пожалуй, начну с того, что если перегружаться 15 раз в год, то любой «тюнинг» процесса загрузки отнимает больше времени, чем будет выиграно на перезагрузках за все время жизни системы. Однако, спортивный интерес берет свое, тем более, что люди интересуется процессом оптимизации быстродействия. А загрузка оказалась самым очевидным кандидатом в примеры того, как на мой взгляд должен выглядеть этот самый процесс. Сразу скажу, что грузиться будем с 5400 rpm винта, грузиться будем в «рабочую» систему: помимо недобитой вендорской крапвари там стоит еще куча всякого типа вижуал студии, антивируса, скайпа, стима, гуглапдейтера и пр…

Про то, почему отключение pagefile-а скорее вредно, чем полезно — как нибудь в другой раз, а пока…
Под катом много однообразных картинок и немножко унылого текста
Total votes 532: ↑516 and ↓16+500
Comments365

Пробежки: хороший спорт для айтишника или как начать бегать

Reading time5 min
Views28K
Всем известно что IT специалисты, в большистве своём, ведут сидячий образ жизни. Практически все рабочее время они проводят на своей 5-й точке. Это явно не идёт на пользу здоровью. А если учесть тот факт, что рацион среднестатистического ITшника достаточно вреден для организма, то в результате всех ждут: избыточный вес, атрофирование мышц, и еще всякие «мелкие неприятности» (вроде геморроя и импотенции). В этой статье я раскажу о пользе регулярных физических нагрузок, о беге трусцой, чем он хорош, и главное — как начать им заниматься.

Регулярные физические нагрузки нужны и полезны. Среднестатистический ITшник недополучает физических нагрузок на работе, это факт. Он не таскает холодильники на 9й этаж без лифта, не носит мешки с цементом на стройке, не бегает за мамонтом в надежде на вкусный ужин. Так что со временем он только «хиляет» и «сдувается». Думаю, это ощущает каждый, кто еще не занимается спортом по какой-либо причине, будь то нехватка времени, лень, или растеряность. Если же желание всё же возникает, то вместе с ним возникает и вопрос — какой же спорт выбрать?
П.С. Регулярный бег позволяет эффективно сбросить вес.
Читать дальше →
Total votes 254: ↑216 and ↓38+178
Comments271

Автоматически убираем фон у сфотографированного текста в Photoshop или ImageMagick

Reading time2 min
Views4K
Хочу поделиться трюком, который немного помогает улучшить качество при печати в ч/б всякого рода конспектов, если их почему-то «оцифровали» фотоаппаратом вместо сканера.
image
Читать дальше →
Total votes 70: ↑56 and ↓14+42
Comments25

Собираем среду разработки сайтов на Маке

Reading time2 min
Views1.3K
Хотелось бы дать небольшую наводку маководам, как установить себе окружение для локальной разработки сайтов. В данном примере рассматривается установка с MacPorts набора Apache+PHP+MySQL+phpMyAdmin. Сразу скажу, что я данный топик не является детальным и отлаженным руководством по установке и у кого-то что-то может не получиться, поэтому сделаю ссылку на готовые и отработанные решения — продукт MAMP и руководство по установке, на которое ссылается php.net.
Среда в которой выполнялась установка: Mac Mini, OS X 10.4.
Итак, ставим среду разработки на Мак:
  1. Устанавливаем MacPorts.
  2. Устанавливаем Apache.
    Вводим в терминале:
    sudo port install apache2
    Пароль, который спросят — ваш маковский пароль
    Первоначально я хотел поставить апач 1.3, но связать его с php5 с ходу не получилось, поэтому поставил второй.
    Запускаем:
    sudo /opt/local/apache2/bin/apachectl start
    Проверка: смотрим в браузере localhost
  3. Устанавливаем PHP с поддержкой MySQL:
    sudo port install php5 +mysql5
    sudo cp /opt/local/etc/php.ini-dist /opt/local/etc/php.ini
  4. Добавляем модуль PHP в Apache
    sudo /opt/local/apache2/bin/apxs -a -e -n «php5» /opt/local/apache2/modules/libphp5.so
    Вставляем содержание /apache2/conf/extras-conf/mod_php.conf в /apache2/conf/httpd.conf ручками или инклудом в том же httpd.conf.
    Добавляем index.php в индексные файлы.
    Перезапускаем апач:
    sudo /opt/local/apache2/bin/apachectl restart
    Проверка: создаём test.php в /opt/local/apache2/htdocs/ с содержанием <?php phpinfo() ?> и проверяем его по адресу localhost/test.php
  5. Устанавливаем MySQL:
    sudo port install mysql5 +server
    Даём права пользователю mysql на /opt/local/var/db/ и вложения в неё. Я делал через Finder, наверное можно и через терминал.
    Устанавливаем БД:
    sudo /opt/local/bin/mysql_install_db5 -user root
    Запусаем демона:
    sudo /opt/local/libexec/mysqld -u root
  6. Устанавливаем phpmyadmin:
    sudo port install phpmyadmin
    Заходим на localhost/pma/setup/index.php
    Устанавливаем новый сервер localhost без пароля
    Заходим в phpmyadmin под root


К сожалению автоматический запуск MySQL и Apache, как это обещал MacPorts у меня не заработал, поэтому запускаю ручками:
$ sudo /opt/local/apache2/bin/apachectl start
$ sudo /opt/local/libexec/mysqld -u root
Данная проблема с MacPorts уже описывалась на Хабре и были найдены какие-то решения.
Total votes 23: ↑12 and ↓11+1
Comments8

Вардрайвинг, сбор информации о беспроводных сетях

Reading time4 min
Views21K
Сбор информации о беспроводных сетях или wardriving (в зависимости от способа передвижения, это может быть и warwalking, и warflying, и, как было продемонстрировано на BlackHat 2008 — warbalooning) занятие очень увлекательное и при этом предоставляющее богатые статистические данные об уровне защищености беспроводных сетей по городу.

Читать дальше
Total votes 22: ↑20 and ↓2+18
Comments14

BitTorrent Tracker based on Django

Reading time1 min
Views837
Как то захотелось поставить себе персональный трекер для того чтобы публиковать большие файлы. Те существующие трекеры, которые я нашел, меня не удовлетворили, и я тогда решил написать свой, да и повод нашелся все таки изучить Django.
В общем встречайте, SimpleBTT.
Часть концепции взял у tokyotosho.com и nyaatorrents.org

В общем смотрите, критикуйте, вносите предложения.
Собственно сам трекер
Исходники на git GPLv3

P.S. Упреждая вопрос, на самом деле трекеры на джанго уже есть, но все таки свой велосипед удобнее.
P.S.S. Грабить корованы оно не будет.
Total votes 15: ↑15 and ↓0+15
Comments5

Бекапим сервер

Reading time2 min
Views1.6K
Нередкая это задача, но делается довольно просто!

Приступим:

1) бэкап мускула

Для этого есть очень хорошая утилитка “mysqldump”, она входит в состав мускула. (если вы юзаете lampp то она лежит в “/opt/lampp/bin/mysqldump”)

Вобщем набиваем в консоли примерно следующее:
mysqldump –all-databases > /mysql.12.12.2008.dump


эта команда забекапит все базы данных в файл “mysql.12.12.2008.dump” в корне! на самом деле пишем любой удобный путь! Если вы не рут то нужно указать логин/пароль с помощю –user логин –password пароль

Приготовьтесь, это может занять серьёзное количество времени если бд приличного размера.

Фишка может не работать, если в какой-нибудь из бд есть ошибки…

Кстати говоря можно подойти к проблеме немного подругому и не бекапить все базы, а каждую отдельно, плюс если в какойто из них есть ошибки то мы узнаем в какой, делается так:
Читать дальше →
Total votes 17: ↑11 and ↓6+5
Comments19

Список стран и городов in English

Reading time1 min
Views755
Для проекта понадобился список стран и городов на английском. Нашел довольно быстро, но, все же, решил выложить сюда, может кому-нибудь еще понадобится. Формат: CSV.

Страны
Города

P.S. На хабре нашел только список на русском.
Total votes 16: ↑11 and ↓5+6
Comments4

Попытка реализации многопоточности в PHP

Reading time7 min
Views653
Задача была в след: Нужно было получить координаты для множества городов и регионов.
Т.к. координат было куча возникло решение в многопоточности.

Плюсы: одновременное выполнение нескольких запросов к серверу.
Минусы: если запускать свой скрипт, то надо указывать url к скрипту, т.е. на локале не всегда будет работать.
Читать дальше →
Total votes 11: ↑5 and ↓6-1
Comments23
1
23 ...

Information

Rating
Does not participate
Location
Польша
Date of birth
Registered
Activity