Pull to refresh
2
0
Send message

Apache & Nginx. Связаны одной цепью

Reading time3 min
Views16K
Как реализована связка Apache & Nginx в Timeweb

Для многих компаний Nginx + Apache + PHP — очень типовая и распространенная связка, и Timeweb здесь не стал исключением. Однако разобраться, как именно она реализована, может быть любопытно и полезно.

image

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

Основные настройки Apache выполняются в конфигурационных файлах самого Apache, а настройки для клиентских сайтов происходят через файл .htaccess. .htaccess — конфигурационный файл, в котором клиент может самостоятельно настроить правила и поведение веб-сервера. Такая настройка будет относиться конкретно к его сайту. Например, благодаря функционалу Apache пользователи могут менять режим работы в рамках одной версии PHP с mod_php на mod_cgi; можно настраивать редиректы, оптимизацию для SEO, удобный URL, некоторые лимиты для PHP.

Nginx используется как прокси-сервер для перенаправления трафика на Apache и как веб-сервер для отдачи статического контента. Также для Nginx мы разработали модули безопасности, которые позволяют защитить данные наших пользователей, например, разделить права доступа.

Представим, что какой-то пользователь заходит на сайт нашего клиента. Сначала пользователь попадает на Nginx, который отдает статический контент. Это происходит мгновенно. Затем, когда дело доходит до загрузки PHP, Nginx перенаправляет запрос на Apache. И Apache совместно с PHP уже генерирует динамический контент.

Особенности связки Apache & Nginx в Timeweb


На нашем виртуальном хостинге реализованы 2 основные схемы работы Apache & Nginx: Shared и Dedicated.
Читать дальше →
Total votes 15: ↑8 and ↓7+1
Comments50

10 open source альтернатив Google Photos

Reading time4 min
Views23K
image

Вам кажется, что вы тонете в цифровых фотографиях? Такое ощущение, что телефон сам по себе заполняется вашими селфи и снимками, а вот выбор лучших кадров и систематизация фотографий никогда не происходит без вашего вмешательства. Для упорядочивания созданных вами воспоминаний требуется время, но ведь со структурированными фотоальбомами так приятно иметь дело. В операционной системе вашего телефона наверняка имеется сервис для хранения и сортировки фотографий, однако существует добрая доля проблем конфиденциальности вокруг сознательного предоставления копий фотографий вашей жизни, друзей, детей и отдыха корпорациям (ещё и бесплатно). К счастью, существует большой выбор альтернатив с открытым исходным кодом, в которых вы сами выбираете, кто может просматривать ваши фотографии, а также инструменты с открытым кодом, которые помогут вам найти и улучшить самые лучшие из ваших любимых фото.
Читать дальше →
Total votes 20: ↑6 and ↓14-8
Comments19

Как оценить производительность СХД на Linux: бенчмаркинг с помощью открытых инструментов

Reading time3 min
Views9.3K
В прошлый раз мы рассказывали об инструментах с отрытым исходным кодом для оценки производительности процессоров и памяти. Сегодня говорим о бенчмарках для файловых систем и систем хранения данных на Linux — Interbench, Fio, Hdparm, S и Bonnie.

Читать дальше →
Total votes 20: ↑16 and ↓4+12
Comments2

Подборка книг о том, как учиться, мыслить и принимать эффективные решения

Reading time4 min
Views36K
В нашем блоге на Хабре мы публикуем не только рассказы о разработках сообщества Университета ИТМО, но и фотоэксурсии — например, по нашей лаборатории робототехники, лаборатории киберфизических систем и DIY-коворкингу Фаблаб.

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

Читать дальше →
Total votes 22: ↑18 and ↓4+14
Comments7

Умеренный Hardening для Firefox

Reading time20 min
Views37K


Современный веб состоит из множества разных технологий, которые предоставляют самые разные возможности… но ещё и создают немалое количество угроз. Современные браузеры давно стали самыми сложными приложениями на компе, обогнав по сложности даже ядро ОС (в Firefox в несколько раз больше строк кода, чем в ядре Linux или офисных пакетах). Мы проводим в браузере большую часть своего времени, так что не удивительно, что браузер находится под прицелом: его постоянно пытаются взломать, использовать в ботнете, пытаются украсть из него наши данные, прослушать его трафик, отслеживать посещаемые нами сайты и наши действия на этих сайтах.


Сейчас самое время сказать, что всё не так уж плохо, и со всеми этими проблемами можно справиться… но это не так. Из коробки браузеры уже делают немало: регулярно обновляются, стараются затыкать дыры в безопасности, внедряют новые технологии для защиты, предоставляют возможность расширять их функционал сторонними расширениями. Но серьёзной защиты из коробки нет, и вряд ли она когда-нибудь появится: она идёт в комплекте с усложнением интерфейса браузера и частичным отключением его функционала, что "ломает" сайты и вряд ли понравится обычным пользователям. Но самое печальное, что даже такой ценой невозможно полноценно защитить браузер — слишком уж он стал сложным.


Тем не менее, для усиления защиты браузера можно много чего сделать.

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

MVCC-1. Изоляция

Reading time25 min
Views126K
Привет, Хабр! Этой статьей я начинаю серию циклов (или цикл серий? в общем, задумка грандиозная) о внутреннем устройстве PostgreSQL.

Материал будет основан на учебных курсах по администрированию, которые делаем мы с Павлом pluzanov. Смотреть видео не все любят (я точно не люблю), а читать слайды, пусть даже с комментариями, — совсем «не то».

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

Ориентироваться я буду на тех, кто уже имеет определенный опыт использования PostgreSQL и хотя бы в общих чертах представляет себе, что к чему. Для совсем новичков текст будет тяжеловат. Например, я ни слова не скажу о том, как установить PostgreSQL и запустить psql.

Вещи, о которых пойдет речь, не сильно меняются от версии к версии, но использовать я буду текущий, 11-й «ванильный» PostgreSQL.

Первый цикл посвящен вопросам, связанным с изоляцией и многоверсионностью, и план его таков:

  1. Изоляция, как ее понимают стандарт и PostgreSQL (эта статья);
  2. Слои, файлы, страницы — что творится на физическом уровне;
  3. Версии строк, виртуальные и вложенные транзакции;
  4. Снимки данных и видимость версий строк, горизонт событий;
  5. Внутристраничная очистка и HOT-обновления;
  6. Обычная очистка (vacuum);
  7. Автоматическая очистка (autovacuum);
  8. Переполнение счетчика транзакций и заморозка.

Ну, поехали.
Читать дальше →
Total votes 34: ↑34 and ↓0+34
Comments35

Король разработки

Reading time15 min
Views210K


Я знаю одного человека — он хороший разработчик, но полнейшая скотина. Когда он начинает говорить, хочется набить ему морду, заткнуть как угодно, лишь бы не слышать, насколько он прав. И эту сумасбродную самоуверенную сволочь еще кто-то слушает, ему поддакивают. Видимо, люди любят сволочей, и им стоит как следует поразмыслить почему.

Полбеды, если он просто шутит, вроде, «разработка приносит мне столько бабок, что поработаю два часа и найму трех нищих врачей стричь мне лужайку». Хуже, когда говорит серьезно: «Ты зря стал писать код. Вся ирония этой индустрии в том, что став хорошим разработчиком, ты обретаешь навыки, которые приводят тебя к выводу, что разработчиком быть плохо».

Недавно у него дела пошли в гору, и там где нормальные люди радуются и расцветают, этот парень, кажется, совсем съехал с катушек. Мы с ним как следует выпили, и он рассказал мне много искреннего дерьма, которое, честно, я бы хотел расслышать обратно.
Читать дальше →
Total votes 375: ↑315 and ↓60+255
Comments667

Эволюционный дизайн баз данных

Reading time32 min
Views21K


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


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


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

Читать дальше →
Total votes 29: ↑27 and ↓2+25
Comments0

Изменение схемы таблиц PostgreSQL без долгих блокировок. Лекция Яндекса

Reading time10 min
Views23K
Если одновременно выполняется много операций по изменению схемы БД, сервис не может корректно работать на запись. Разработчик Владимир Колясинский объяснил, какие операции в PostgreSQL требуют длительных блокировок и как команда Яндекс.Коннекта обеспечивает почти стопроцентную доступность сервиса на запись во время выполнения подобных операций. Кроме того, вы узнаете о библиотеке для Django, которая призвана автоматизировать часть описанных процессов.


У нас большие нагрузки, тысячи RPS, и простой в несколько минут, не говоря о большем времени, недопустим. Нужно, чтобы миграции происходили незаметно для пользователя. А с такими нагрузками уже не получится встать в четыре часа ночи, что-то накатить, когда нет нагрузки, и снова лечь спать — потому что нагрузка идет круглые сутки.

Total votes 61: ↑61 and ↓0+61
Comments41

Дополнительные программные средства безопасности для NAS

Reading time24 min
Views12K


Цикл статей назван "Построение защищённого NAS". Поэтому в данной статье будет рассматриваться повышение уровня защищённости. Также, будут описаны и те инструменты, которые я не использовал, но возможно применить.

Читать дальше →
Total votes 9: ↑8 and ↓1+7
Comments7

Лечение «механического» Scrum. Часть 1. Работа PO

Reading time11 min
Views22K

Я больше 10 лет работаю с / в / для agile в сфере web-разработки. Из них больше всего пришлось иметь дело с самым популярным agile фреймворком — scrum (по данным VersionOne). Хочу поделиться с вами накопленными наблюдениями и выводами.


Начну с метафоры, так как иногда приходилось видеть внедрение scrum по такому сценарию:


  • До scrum: «разработка» как младенец — она целеустремленна, но не умеет нормально ходить, а очень хочет научиться, чтобы добираться до цели.
  • Внедрение: приходит учитель (scrum тренинги, курсы, agile coach и т.п.) и показывает, как ходить. Малыш счастлив, он двигается шагами! Топ-топ-топ. У нас спринты — мы ходим!
  • После внедрения: терпеливые стейкхолдеры говорят: «Окей, погнали к цели», на что получают «не давите на команду, мы ходим!». Разработка выписывает интересные траектории и получает удовольствие от процесса, но цель забыта.
  • Scrum-но: дальше пилюля правды от бизнеса, scrum «мутирует» и позволяет бизнесу получать какой-никакой продукт от разработки. И, к сожалению, формально ставится галочка «мы работаем по scrum», а реальный потенциал команды разработки так и не раскрыт, да и кругом говорят «scrum ненастоящий».


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

Лечение «механического» Scrum. Часть 3. Работа SM

Reading time11 min
Views12K

Как следует из названия, это продолжение серии статей про роли в scrum (часть 1 и часть 2). Сегодня рассмотрим следующую роль – scrum master. Как это ни парадоксально, успешность scrum во многом зависит от scrum мастера. Поэтому хочется снова призвать силу воображения и привести метафору (дисклеймер: пример никоим образом не должен оскорбить чьих-либо чувств). Есть культура, у которой есть свой культ, свои обряды, есть служители этого культа. Служителей можно разделить на различные классы:

  • те, кто со своей культурой предпочитают быть один на один — отшельники, затворники, просветленные;
  • те, кто выучили все правила, нашли лазейки, понимают, что и как делать, и используют культ в корыстных целях, наживаясь на людях, их страхах и предубеждениях;
  • фанатики, которые пытаются насадить свою культуру к месту и не к месту. Для которых кроме их знаний, всё остальное ересь;
  • те, кто искренне верит, чувствует и пытается поделиться, помочь и подарить это чудо людям; они рассказывают и объясняют, слушают и пытаются помочь.

Со Scrum и SM-ами, мне кажется, происходит очень похожая история. Попробуйте посмотреть на знакомых вам SM через такую призму. С какими SM вам бы хотелось работать?
image
Давайте разберемся, какие тревожные симптомы могут быть у SM.
Читать дальше →
Total votes 31: ↑26 and ↓5+21
Comments33

Лечение «механического» Scrum. Часть 2. Команда

Reading time8 min
Views16K

В первой части мы рассмотрели тревожные симптомы и возможные способы «лечения» Product Owner в «механическом» scrum. Продолжим разбор ролей и следующая на очереди – команда.
Все же знают мантру, что команда должна быть самоорганизованной и кросс-функциональной, это выглядит как самая простая часть scrum: берем людей с нужными компетенциями, говорим им: «вы команда», и полетели! Но на деле все несколько сложнее.


image
Читать дальше →
Total votes 31: ↑31 and ↓0+31
Comments110

Профессиональное выгорание: слово экспертам

Reading time5 min
Views33K
После статьи о профессиональном выгорании поступило много вопросов в личку и в комментарии про то, где больше почитать про матчасть, чем отличаются одни школы психотерапии от других и как выбрать специалиста.

Этим постом как раз постараемся на все и ответить. Пару месяцев назад для студентов нашей Школы мы запустили линейку мастер-классов про выгорание. Приглашали не просто тех, кто умеет бодро и зажигательно говорить (это мы и сами умеем), а, прежде всего, профессионалов психотерапии, кто уже много лет занимается тем, что успешно работает со счастливыми обладателями синдрома выгорания:

1. Дмитрий Ковпак, кандидат мед.наук, президент российской Ассоциации когнитивно-поведенческой психотерапии (КПТ), доцент кафедры психологии и педагогики СЗГМУ им. И.И. Мечникова.

2. Алексей Демьяненко, психотерапевт, заведующий Городским Психотерапевтическим Центром Санкт-Петербурга, руководитель регионального отделения Российской Психотерапевтической Ассоциации.

3. Наталия Дзеружинская, доктор мед.наук, врач-психиатр высшей квалификационной категории, профессор кафедры психиатрии и наркологии Национального медицинского университета имени А.А. Богомольца Украины. Более 30 лет работы в сфере психического здоровья.

4. Мария Берлин, организационный психолог, тренер, корпоративный психолог ЗАО РТК МТС(2015-2016), преподаватель института «Иматон», автор программы подготовки специалистов «Работа с эмоциональным выгоранием – комплексный подход».

В итоге у нас накопилось пять мастер-классов (видео под катом). Видео изначально были доступны только нашим студентам. Но раз тема оказалась актуальной для Хабра, решили все это выложить — пользуйтесь на здоровье.
Total votes 29: ↑24 and ↓5+19
Comments8

«20 тысяч IOPS на узел — хорошие показатели с учётом задержек в 5 мс». Для OLTP — нет

Reading time14 min
Views39K

КДПВ


Поводом написать эту статью стал весьма достойный обзор Как мы тестировали VMware vSAN... компании КРОК. Обзор-то достойный, но в нем есть фраза, с которой я борюсь уже больше десятка лет. Админы СХД, виртуализаторы и интеграторы раз за разом повторяют: "Задержки в 5 мс — это отличный показатель". Даже цифра в 5 мс десять лет не меняется. Я это слышал вживую от весьма уважаемых админов уже не меньше десятка раз. От менее уважаемых — десятки, а уж сколько раз читал в интернете… Нет, нет, нет. Для OLTP нагрузок 5 мс, особенно так, как их обычно измеряют — это epic fail. Мне приходилось объяснять причины этого уже много раз, на этот раз я решил собрать свои мысли в переиспользуемую форму.


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

Читать дальше →
Total votes 73: ↑71 and ↓2+69
Comments58

Подборка бесплатных утилит компьютерной криминалистики (форензики)

Reading time3 min
Views97K
image

В этой статье представлены бесплатные инструменты для проведения расследования инцидентов информационной безопасности.
Читать дальше →
Total votes 49: ↑48 and ↓1+47
Comments18

Как понять, что происходит на сервере

Reading time9 min
Views82K


Александр Крижановский ( krizhanovsky, NatSys Lab.)


По Сети уже давно бегает эта картинка, по крайней мере, я ее часто видел на Фейсбуке, и появилась идея рассказать про нее:


Читать дальше →
Total votes 98: ↑96 and ↓2+94
Comments20

Жаргон функционального программирования

Reading time10 min
Views91K


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


В примерах используется JavaScript ES2015). (Почему JavaScript?)


Работа над материалом продолжается; присылайте свои пулл-реквесты в оригинальный репозиторий на английском языке.


В документе используются термины из спецификации Fantasy Land spec по мере необходимости.


Arity (арность)


Количество аргументов функции. От слов унарный, бинарный, тернарный (unary, binary, ternary) и так далее. Это необычное слово, потому что состоит из двух суффиксов: "-ary" и "-ity.". Сложение, к примеру, принимает два аргумента, поэтому это бинарная функция, или функция, у которой арность равна двум. Иногда используют термин "диадный" (dyadic), если предпочитают греческие корни вместо латинских. Функция, которая принимает произвольное количество аргументов называется, соответственно, вариативной (variadic). Но бинарная функция может принимать два и только два аргумента, без учета каррирования или частичного применения.

Читать дальше →
Total votes 91: ↑87 and ↓4+83
Comments113

Обработка ошибок в Rust

Reading time32 min
Views39K

Как и многие языки программирования, Rust призывает разработчика определенным способом обрабатывать ошибки. Вообще, существует два общих подхода обработки ошибок: с помощью исключений и через возвращаемые значения. И Rust предпочитает возвращаемые значения.



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



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


Читать дальше →
Total votes 37: ↑36 and ↓1+35
Comments73

Балансировка 70 тысяч запросов в секунду на HighLoad++

Reading time5 min
Views39K

Библиотека докладов


Это не просто статья — это целая библиотека докладов про внутреннее устройство тех или иных крупных и высоконагруженных проектов. Все эти доклады звучали на конференциях HighLoad++ и РИТ++ за последние несколько лет.


Читать дальше →
Total votes 43: ↑38 and ↓5+33
Comments11
1

Information

Rating
Does not participate
Registered
Activity