Search
Write a publication
Pull to refresh
27
0
Send message

FileAPI 2.0: Загрузка файлов на сервер год спустя

Reading time11 min
Views70K
FileAPI 2.0Привет Хабр! Примерно год назад я представил вашему вниманию первую версию open-source библиотеки FileAPI, предназначенную для работы с файлами на клиенте и последующей загрузки на сервер.

За это время был пройден долгий путь. Библиотека заработала 670+ звезд и 90+ форков. С помощью github-сообщества удалось исправить множество «детских» проблем и внести ряд улучшений. Было закрыто более 100 тасков, и благодаря Илье Лебедеву сделана загрузка файлов по частям. Сегодня я с гордостью хочу представить вам FileAPI 2.0.
Читать дальше →

Избранное: ссылки по IT безопасности

Reading time3 min
Views110K




Давно хотел написать этот пост с подборкой полезных ссылок, так как очень часто спрашивают подобное (думаю, у многих, кто в этой (да и в других) сфере). Ссылки разбиты на категории.




Читать дальше →

Ускоряем Nginx за 5 минут

Reading time5 min
Views298K
image
Попытайтесь повторить это сами

Как правило, настроенный должным образом сервер Nginx на Linux, может обрабатывать 500,000 — 600,000 запросов в секунду. Но этот показатель можно весьма ощутимо увеличить. Хотел бы обратить внимание на тот факт, что настройки описанные ниже, применялись в тестовой среде и, возможно, для ваших боевых серверов они не подойдут.

Минутка банальности.

yum -y install nginx

На всякий пожарный, создадим бэкап исходного конфига.

cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.orig
vim /etc/nginx/nginx.conf

А теперь можно и похимичить!
Бдыжь-бдыжь

Сети для Самых Маленьких. Микровыпуск №4. Погружение в IOU

Reading time10 min
Views39K
Продолжая, а точнее завершая обзор разнообразных эмуляторов оборудования Сisco Systems, я подробно остановлюсь на Cisco IOU (Cisco IOS on UNIX).
Именно этот эмулятор содержит максимальное количество фич и минимальное количество ограничений по функционалу (напомню, что он не распространяется и допускается только использование сотрудниками Cisco).
Основные его преимущества в том что достаточно быстр и неплохо работает с канальным уровнем.
Если быть максимально точным, то IOU работает только под Solaris, а под Linux'ом запускается IOL, но все привыкли использовать одно общее название, поэтому и в статье я буду придерживаться общего названия.

Рассмотрим его от начала и до конца, от установки и до конфигурирования, а под занавес выпустим его в реальную сеть.
Читать дальше →

«Идеальный» www кластер. Часть 1. Frontend: NGINX + Keepalived (vrrp) на CentOS

Reading time9 min
Views113K


Этом цикле статей «Идеальный www кластер», я хочу передать базовые основы построения высокодоступного и высокопроизводительного www решения для нагруженных web проектов для неподготовленного администратора.
Статья будет содержать пошаговую инструкцию и подойдет любому человеку кто освоил силу copy-paste
Ошибки найденые вами, помогут в работе и мне и тем кто будет читать эту статью позже! Так что любые улучшение и правки приветствуются!

Хочу отметить, что эта инструкция родилась в процессе миграции web-систем компании Acronis в высокодоступный кластер. Надеюсь мои заметки будут полезны и для Вас!.

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

На frontend мы будем использоваться связку из двух службы:



keepalived — реализации протокола VRRP (Virtual Router Redundancy Protocol) для Linux. Демон keepalived следит за работоспособностью машин и в случае обнаружения сбоя — исключает сбойный сервер из списка активных серверов, делегируя его адреса другому серверу.

Другими словами, у нас 2 сервера на которых прописано по одному публичному адресу. Если любой из этих серверов падает, то адрес упавшего подхватывается вторым.
Демоны keepalived общаются по протоколу VRRP, посылая друг другу сообщения на адрес 224.0.0.18.
Если сосед не прислал свое сообщение, то по истечению периода он считается умершим и оба адреса обслуживает оставшаяся нода. Как только упавший сервер начинает слать свои сообщения в сеть, все возвращается на свои места


nginx [engine x] — это HTTP-сервер и обратный прокси-сервер, а также почтовый прокси-сервер, написанный Игорем Сысоевым. Уже длительное время он обслуживает серверы многих высоконагруженных российских сайтов, таких как Яндекс, Mail.Ru, ВКонтакте и Рамблер. Согласно статистике Netcraft nginx обслуживал или проксировал 15.08% самых нагруженных сайтов в октябре 2013 года.

Основная функциональность HTTP-сервера

  • Обслуживание статических запросов, индексных файлов, автоматическое создание списка файлов, кэш дескрипторов открытых файлов;
  • Акселерированное обратное проксирование с кэшированием, простое распределение нагрузки и отказоустойчивость;
  • Акселерированная поддержка FastCGI, uwsgi, SCGI и memcached серверов с кэшированием, простое распределение нагрузки и отказоустойчивость;
  • Модульность, фильтры, в том числе сжатие (gzip), byte-ranges (докачка), chunked ответы, XSLT-фильтр, SSI-фильтр, преобразование изображений; несколько подзапросов на одной странице, обрабатываемые в SSI-фильтре через прокси или FastCGI, выполняются параллельно;
  • Поддержка SSL и расширения TLS SNI.


Другие возможности HTTP-сервера

  • Виртуальные серверы, определяемые по IP-адресу и имени;
  • Поддержка keep-alive и pipelined соединений;
  • Гибкость конфигурации;
  • Изменение настроек и обновление исполняемого файла без перерыва в обслуживании клиентов;
  • Настройка форматов логов, буферизованная запись в лог, быстрая ротация логов;
  • Специальные страницы для ошибок 3xx-5xx;
  • rewrite-модуль: изменение URI с помощью регулярных выражений;
  • Выполнение разных функций в зависимости от адреса клиента;
  • Ограничение доступа в зависимости от адреса клиента, по паролю (HTTP Basic аутентификация) и по результату подзапроса;
  • Проверка HTTP referer;
  • Методы PUT, DELETE, MKCOL, COPY и MOVE;
  • FLV и MP4 стриминг;
  • Ограничение скорости отдачи ответов;
  • Ограничение числа одновременных соединений и запросов с одного адреса;
  • Встроенный Perl.


Читать дальше →

Анимация в интерфейсах

Reading time3 min
Views52K
Когда мы создаем статические макеты интерфейсов (будь то сайтов или мобильных приложений) в Photoshop, мы не слишком сильно задумываемся над тем, как этот макет поведет себя в динамике. Стив Джобс как то сказал: «Дизайн это не то как продукт выглядит, это то как он работает». Наше впечатление от продукта формируется на основании многих факторов, но самым важным является комфортное взаимодействие с ним.

Анимация прокрутки


Гиперссылки произвели революцию в интернете, но они остаются так же его основной проблемой. Никогда не знаешь наверняка, куда она тебя заведет. Даже гиперссылка ведущая в футер сайта может отвлечь от первоначальной мысли.


Читать дальше →

Хотите распределить элементы, привязавшись к их количеству, на одних стилях? Да запросто

Reading time3 min
Views24K
Альтернативное название статьи – «почти :child-count(n)». Потому что именно так оно все и работает. На голом CSS и без каких-либо дата-атрибутов или чего-либо еще в верстке.

Представьте, что у вас есть, например, какая-нибудь лента новостей. Неважно, какая. Главное, что вы не знаете, сколько в ней будет элементов, и как их расставить так, чтобы было симметрично. И хочется сделать что-то бесполезное, но красивое: например, расставить все в две колонки, а некоторые блоки вставить во всю ширину. Каждый третий, или каждый пятый.

Конечно же, если у вас четыре элемента, а третий вы сделали во всю ширину – последний будет свешиваться в конце. Поэтому нужно применять такую красивую и бесполезную вещь только в том случае, если количество элементов кратно трем. А если их нечетное число(но не кратное трем) — нужно делать, например, последний элемент во всю шинину.
Вот так, например:



Как же это сделать?

Десятка лучших консольных команд

Reading time2 min
Views198K
imageВ данном посте я расскажу о наиболее интересных командах, которые могут быть очень полезны при работе в консоли. Однозначных критериев определения какая команда лучше другой — нет, каждый сам для своих условий выбирает лучшее. Я решил построить список команд на основе наиболее рейтинговых приемов работы с консолью от commandlinefu.com, кладовой консольных команд. Результат выполнения одной из таких команд под Linux приведен на картинке. Если заинтересовало, прошу под кат.
Узнать больше

Вы можете развить свой интеллект: 5 способов максимально улучшить свои когнитивные способности

Reading time17 min
Views516K
Не стоит преследовать цели, которые легко достичь. Стоит нацеливаться на то, что удается сделать с трудом, приложив немалые усилия — Альберт Эйнштейн

Несмотря на то, что Эйнштейн не был нейробиологом, он точно знал все, когда говорил о способности человека добиваться чего-либо. Он интуитивно догадывался о том, что лишь сегодня нам удалось подтвердить с помощью данных, а именно: что заставляет когнитивные способности работать на максимально высоком уровне. По существу: То, что тебя не убивает, делает тебя умнее.
Читать дальше →

Сети для Самых Маленьких. Микровыпуск №3. IBGP

Reading time29 min
Views67K


Долго ли коротко ли длилась история linkmeup, но компания росла, развивалась. Счёт маршрутизаторов уже на десятки, свои опто-волоконные линии, развитая сеть по городу. И было принято решение оформлять компанию, как провайдера и предоставлять услуги доступа в Интернет для сторонних в том числе организаций.
Сама по себе задача административная — лицензии там, поиск клиентской базы, реклама, поставить СОРМ.
Разумеется, с технической стороны тоже нужны приготовления — просчитать ресурсы, мощности, порты, подготовить политику QoS. Но всё это (за исключением QoS) — рутина.

Мы же хотим поговорить о другом — IBGP. Возможно, тема покажется вам несколько притянутой за уши, мол, внутренний BGP — прерогатива достаточно крупных провайдеров.
Однако это не так, сейчас iBGP задействуется в ентерпрайзах чуть ли не чаще, чем в провайдерах. С целью исключительно внутренней маршрутизации. Например, ради VPN — очень популярное приложение на базе BGP в корпоративной среде. К примеру, возможность организовать периметры, изолированные на L3, на уже используемой инфраструктуре очень ценна. А префиксов-то может быть каких-то полсотни, а то и десяток. Вовсе никакой не Full View, однако все равно удобно.

Возможно, к нашей сети Linkmeup это не имеет по-прежнему отношения, но обойти стороной такую концепцию будет совершенно непростительно. Поэтому предположим, что сеть достаточно велика, и у нас есть необходимость в BGP в ядре.

Сегодня обсудим
  • Когда нужен IBGP
  • В чём отличия от EBGP
  • Route Reflector’ы
  • Конфедерации
  • Нерассмотренные в основной статье атрибуты BGP


Традиционное видео


Задачки в этом выпуске не относятся напрямую к IBGP, это, скорее, по BGP в целом. Интересно будет как новичкам поломать голову, так и старожилам размяться

Читать дальше →

I2P: Прозрачный доступ из любого браузера

Reading time2 min
Views377K


В последнее время, количество новостей связанных с блокировками зашкаливает.

Но куда уходить людям?

Что бы был доступ к информации, свобода слова и соблюдались хотя бы те правила, которые есть в конституции?

Mesh сети не подходят, Tor — тоже не может обеспечить требуемого, остается I2P.

Сегодня мы поговорим как настроить прозрачный доступ в I2P, с помощью которого каждая домохозяйка сможет открыть любой сайт в этой сети.
Читать дальше →

Руководство по проектированию реляционных баз данных. Каскадное удаление данных

Reading time6 min
Views96K
Дополнение к циклу переведенных статей.
Статьи: 1-3, 4-6, 7-9, 10-13, 14-15


Информация в статье относится к 5-й части руководства.

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


Введение.


Если отталкиваться от обывательской позиции человека, который разрабатывает базы данных, то внешние ключи – это удобно и упрощает жизнь (в большинстве случаев, всегда есть исключения.). Даже будучи невеждой в реляционной теории баз данных, к осознанной необходимости использования внешних ключей, на определенном этапе своего развития, приходит практически любой практик (утверждение — более относится к начинающим), который не стоит на месте в своем развитии и продолжает мыслить. Даже если он еще не знает, что то, что ему нужно называется связью по внешнему ключу, он начинает самостоятельно организовывать данные определенным образом, разбивать на отдельные таблицы и связывать их между собой. Настолько это становится очевидным.
Но при использовании внешних ключей, даже если не знать такого определения, возникает необходимость следить за связываемыми данными. Рассматриваемым объектом данной статьи является, если так можно сказать, своеобразный спутник, который следует за такой организацией данных. И в данном случае уже гораздо полезнее знать теорию, т.к. это может значительно упростить жизнь в процессе работы с базой данных.
Читать дальше →

Автоматизируем мониторинг: низкоуровневое обнаружение

Reading time6 min
Views131K
Мониторинг большого количества устройств требует в помощь инструменты автоматизации. Иначе, если все делать мышкой, то можно “укликаться”, пока добавишь и настроишь все, что требовалось. К тому же, обязательно где-нибудь ошибёшься, человек не робот. Благо, в Zabbix все эти инструменты есть: это шаблоны, API, обнаружение сетевых устройств, авторегистрация Zabbix-агентов.

И вот с версии 2.0 сюда добавилось Low-Level Discovery (LLD) или низкоуровневое обнаружение. Хотелось бы рассказать что это такое.
Подробности

Как мы строили свою WiFi-сеть

Reading time15 min
Views128K
Я хочу рассказать о том, как мы строили свой собственный, хороший WLAN — Wireless LAN.

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

Читать дальше →

Руководство по проектированию реляционных баз данных (10-13 часть из 15) [перевод]

Reading time7 min
Views186K
Продолжение.
Предыдущие части: 1-3, 4-6, 7-9

10. Нормализация баз данных


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

Нормальные формы – это рекомендации по проектированию баз данных. Вы не обязаны придерживаться всех пяти нормальных форм при проектировании баз данных. Тем не менее, рекомендуется нормализовать базу данных в некоторой степени потому, что этот процесс имеет ряд существенных преимуществ с точки зрения эффективности и удобства обращения с вашей базой данных.
Читать дальше →

Масштабируя Zabbix

Reading time11 min
Views157K
Zabbix logoТех, кто использует или собирается использовать Zabbix в промышленных масштабах, всегда волновал вопрос: сколько реально данных сможет Заббикс «переварить» перед тем как окончательно поперхнется и подавится? Часть моей недавней работы как раз касалось этого вопроса. Дело в том, что у меня есть огромная сеть, насчитывающая более 32000 узлов, и которая потенциально может полностью мониториться Заббиксом в будущем. На форуме давно идут обсуждения о том, как оптимизировать Zabbix для работы в больших масштабах, но, к сожалению, мне так и не удалось найти законченное решение.

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

JetBrains — разработка под Android для лентяев

Reading time1 min
Views79K
Хотите изучить разработку пoд Android, но лень читать большие книги с кучей теории? JetBrains подготовила курс из 12 уроков для быстрого старта. Темы уроков:

* Getting Started
* UI Designer
* Minimally Interactive
* Lifecycle
* More Activities
* List Views
* HTTP
* Storage
* Menus
* Dialogs
* Preferences
* Publishing
Читать дальше →

Несколько интересностей и полезностей для веб-разработчика (выпуск 3)

Reading time3 min
Views60K
Доброго времени суток, уважаемые хабравчане. С прошедшим вас днем программиста. За последнее время я увидел несколько интересных и полезных инструментов/библиотек/событий, которыми хочу поделиться с Хабром.

Cloudconvert




Великолепный онлайн конвертер файлов, который поддерживает в общей сложности 140 форматов следующих типов: archive, audio, cad, document, ebook, image, presentation, spreadsheet, video. Синхронизируется с Dropbox и Google Drive, благодаря чему возможно использование на всех смартфонах. А самое приятное это то, что для данного сервиса существует функциональное и простое API.

Читать дальше →

Обзор и классификация CMS по категориям (2013)

Reading time30 min
Views237K
Недавний поиск списка CMS, на примере которых можно было бы объяснить студентам архитектуру и структуру сложного web-сайта, привел меня к любопытной статье с классификацией CMS, которая, однако, на текущий момент немного устарела, да и написана несколько сумбурно. Это подвигло меня составить новый обзор, собрав больше решений и дополнив их по возможности ссылками на официальные сайты, страницы закачки и демо-панели.

Я рассматривала CMS на php, в основном бесплатные, за некоторым исключением. В результате на текущий момент получился такой набор:

CMS общего назначения: Alto CMS, Cogear, Contao, Cotonti, DataLifeEngine, Drupal, ImageCMSCorporate, Joomla, Host CMS, MaxSiteCMS, MODX, MosquitoBloodyMary, ReloadCMS, Wordpress
Галереи: Coppermine, Gallery (Gallery2, обновленная до версии 3), Koken, MG2 = MiniGal 2, Pikateka, SimpleViewer, Zenphoto
Социальные сети: Elgg, Explay CMS, InstantCMS, LiveStreet, BigStreet
Форумы: IPB (Invision Power Board), Phorum, phpBB, phpBBex, PunBB, Simple Machines Forum, Vanilla, vBulletin
Интернет-магазины: ECShop, Magento, OpenCart, Семейство osCommerce, Prestashop
Сайты-визитки без SQL-базы: GetSimple, Monstra, Nanote, Stacey, CMS Чайник
Читать дальше →

Инструкция по выживанию для штатного системного администратора 2

Reading time8 min
Views59K

Наводим порядок в ИТ-инфраструктуре




Предыдущая инструкция по выживанию системного администратора относилась преимущественно к взаимодействию системного администратора и руководства компании, но, как верно заметили читатели, уровень стресса у системного администратора зависит еще и от уровня хаоса в ИТ-инфраструктуре. При этом, хаос в ИТ-инфраструктуре, как правило, является историческим наследием компании, который создали предыдущие сисадмины-временщики сторонники определенных (иногда экстремистских) технологий. Системный администратор, приходя в компанию с такой ИТ-инфраструктурой, ставится перед тяжелым выбором: либо менять работу (и тем самым снижать свою привлекательность в глазах работодателей), либо собрать всю волю в кулак и пытаться привести ИТ-инфраструктуру в «нормальное» состояние.
Читать дальше →

Information

Rating
Does not participate
Location
Республика Крым, Россия
Date of birth
Registered
Activity