Oppa Cyprus Style
Date September 19th, 2013 Author Vitaly Agapov
Отдохнули в июне 2013 года.
Tags: Beyond IT
Категория:
Beyond IT |
3 Комментариев »
Забег в пейнтбол
Date September 19th, 2013 Author Vitaly Agapov
Поиграли в августе 2013-го года.
Tags: Beyond IT
Категория:
Beyond IT |
Нет комментариев »
Пишем хук для Atlassian Stash
Date August 27th, 2013 Author Vitaly Agapov
Раньше я тесно взаимодействовал с системой контроля версий Subversion и с системой для багтрекинга (точнее issue-трекинга) Atlassian Jira. Они были тесно переплетены друг с другом. Jira показывала привязанные к задачам коммиты в SVN, SVN спрашивал у Jira разрешения на коммит с учётом главного правила – сообщение к коммиту должно содержать валидный ключ задачи в Jira. Последняя фича реализовывалась с помощью плагина JIRA Commit Acceptance и pre-commit хука для SVN, написанного на Perl'е.
Когда же SVN отошёл и уступил место git'у под управлением Atlassian Stash, возникла необходимость реализовать ту же самую тёплую ламповую функциональность, которая существовала и раньше. Каково же было моё удивление, когда я узнал, что плагина для Stash с аналогичным хуком не существует (да-да, хуки здесь существуют в виде плагинов). А это значило, что следует засучить рукава и разобраться, как написать свой собственный плагин под Stash и научить его делать то, что нам надо.
Плагины для продуктов Atlassian пишутся на Java, и лично для меня основной сложностью и преградой было именно это обстоятельство, ведь я джавой головного мозга не страдаю и за всю жизнь не написал на Java ни строчки кода, если не считать кое-каких HelloWorld'ов по разным туториалам. Но всё бывает в первый раз. Так что этот текст может пригодиться (а может и не пригодиться) людям совершенно далёким от java-разработки, плагиностроения для Atlassian'овсих продуктов и вообще от быдлокодинга.
Tags: Atlassian, Java
Категория:
Java |
Нет комментариев »
Связка Nginx + Varnish + HAProxy для чайников
Date August 12th, 2013 Author Vitaly Agapov
Эту универсальную связку можно использовать на любых высоконагруженных проектах. Она не будет тормозить, жрать ресурсы и пыхтеть как паровоз (это кивок в сторону Apache). Она легко управляется, отлично масштабируется на любое число серверов в кластере и хорошо мониторится.
Здесь Nginx будет заниматься свои обычным делом: отдавать статику, терминировать ssl-сессии, обеспечивать rewrite url’ов и т.д. Часть трафика, подлежащую кэшированию, он будет отдавать Varnish’у, а всё остальное – на HAProxy. Varnish будет исправно кэшировать весь отдаваемый контент, лишь изредка обращаясь за обновлениями на тот же HAProxy. HAProxy будет проксировать запросы на бэкенды, балансируя нагрузку и обеспечивая механизм sticky sessions. Само собой, если бэкенд (тот же Tomcat) всего один, то HAProxy тут нам не понадобится. Но это частный случай.
Tags: HAProxy, Nginx, Varnish
Категория:
HAProxy, Nginx, Varnish |
Нет комментариев »
Nginx и ModSecurity
Date July 19th, 2013 Author Vitaly Agapov
Всем хорош Nginx, но у Apache всегда была целая россыпь козырей в рукаве, не позволявшая Nginx'у приблизиться к нему в его неимоверной крутости. Одним из таких козырей был плагин ModSecurity, про который я относительно недавно опять писал статейку. Каково же было моё удивление, тщательно перемешанное с радостью, когда я узнал, что ModSecurity теперь работает и с Nginx'ом и что этот плагин только-только вышел из беты. Радость была обоснована ещё и тем, что незадолго до того я искал какие-нибудь аналоги для использования. Тыкал палочкой Naxsi, но ничего под свои нужды так и не нашёл. А тут такой подарок.
Подарок оказался не без сюрпризов. Но обо всём по порядку.
Tags: ModSecurity, Nginx
Категория:
Nginx |
Нет комментариев »
На байдарке от Беличьего до Корелы и обратно
Заметки об Apache, часть 6: Простая защита от ДДоС/брутфорса средствами ModSecurity
Date March 27th, 2013 Author Vitaly Agapov
Года, эдак, три назад я уже постил здесь статейку "mod_security2 для Apache", касающуюся использования модуля ModSecurity. Она и сейчас вполне занятна, полезна и самодостаточна. И там даже был пример на нашу сегодняшнюю тему, но я хотел бы эту самую тему углубить и рассмотреть более подробно. Посмотрим, как можно защититься от перебора паролей на сайте или даже обеспечить простенькую (это ключевое слово, так как от забивания полосы канала это не спасёт) защиту от DDoS. Посмотрим, как в ModSecurity можно работать со счётчиками и реализовывать на этих счётчиках сценарии защиты.
Итак, мы предполагаем, что некоторые антисоциальные элементы могут начать доставлять нам неудобства, заваливая сайт некоторыми запросами на логин или, например, на некоторые тяжёлые страницы, нагружающие бэкенд. Давайте их банить.
Tags: Apache, ModSecurity
Категория:
Apache |
1 Комментарий »
Хэши в AWK
Date February 28th, 2013 Author Vitaly Agapov
AWK я люблю и уважаю, хоть и пользуюсь его возможностями максимум на 1,5%. Когда же я понял, что он умеет работать с ассоциативными массивами, это число резко выросло до 1,86%. До awk-гуру рукой подать.
Допустим мы выбрали из access.log ip-адреса пользователей и размеры ответов и хотим подсчитать, кто сколько раз к нам сходил (это просто) и сколько трафика суммарно высосал (это интереснее). Допустим, сырой файл выглядит так:
Tags: Linux
Категория:
Linux |
1 Комментарий »
Заметки об Apache, часть 5: Принудительная компрессия контента
Date January 29th, 2013 Author Vitaly Agapov
В некоторых ситуациях может потребоваться сжимать отдаваемые страницы, даже если пользователь не указал в заголовке Accept-Encoding поддержки gzip или вообще не проставил оный заголовок. Чаще всего этими пользователями оказываются вовсе не бедолаги с древними браузерами середины девяностых годов, а простые парсеры wget-чики, которых можно было бы просто забанить, но по какой-то причине жалко. Но трафика тоже жалко. Так что можно придумать два способа, как заставить Apache сжимать контент независимо от Accept-Encoding. Читать далее »
Tags: Apache
Категория:
Apache |
Нет комментариев »
Проба стедикама
Date January 28th, 2013 Author Vitaly Agapov
Первая криворукая прогулка с Flycam DSLR Nano FC.
Tags: Beyond IT
Категория:
Beyond IT |
Нет комментариев »