Как стать автором
Поиск
Написать публикацию
Обновить
0
0
Илья Чумаков @morreti

Пользователь

Отправить сообщение

10 миллионов хитов в день с WordPress на сервере за $15

Время на прочтение1 мин
Количество просмотров17K
Английский разработчик Эван Лейт (Ewan Leith) опубликовал пошаговую инструкцию, как поднять виртуальный микросервер на Amazon, Linode или другом облачном хостинге, который сможет крутить блог WordPress и выдерживать 10 миллионов хитов в сутки (отчёт составлен с помощью Blitz.io), при этом будет стоить всего пятнадцать долларов в месяц.

Инструкция описывает, как последовательно установить Ubuntu 11.10 (Oneiric), MySQL, PHP с PHP FPM, APC и модулем MySQL, Nginx с конфигурацией для WordPress, ну и сам WordPress. После этого сервер работает ещё довольно медленно, но всё меняет установка W3 Total Cache и Varnish, которые вместе с Nginx способны сотворить настоящее чудо.

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

Миллион посетителей на WordPress против сервера

Время на прочтение3 мин
Количество просмотров21K
Мой сервер, который и будет героем последующего повествования — это обычный арендованный у FirstDedic сервер среднего класса с процессором DualCore Xeon E3110 3.00Ghz. Оперативной памяти было установлено 4 Гб, жесткий диск 500 Гб. На сервере был установлен nginx 1.01 в качестве frontend, и apache 2 в качестве backend, с запуском скриптов в режиме CGI.

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

Защита gitlab и gitolite от подбора паролей и ключей

Время на прочтение3 мин
Количество просмотров5.8K
Совсем недавно на мой сервер с git репозиторием началась атака по подбору паролей к gitlab и ключей к ssh. Намерения злоумышлеников понятны — вытащить исходный код проприетарного приложения хранящегося в git.

Мне не совсем понятны попытки подбора ssh-ключей, т.к. проблематично подобрать RSA-ключ (это займет десятки лет), но я всё же сделал некоторые ограничения для того что бы не так сильно «загаживались» логи.

Кому интересно как защитить gitolite и gitlab (работает за nginx) от подбора паролей — добро пожаловать под кат.
Читать дальше →

Отрезаем голову в nginx

Время на прочтение1 мин
Количество просмотров24K
Не так давно я рассказывал, как у нас в Topface устроено хранение и раздача пользовательских картинок на Topface Developer Day (презентация на speakerdeck). Картинки мы нарезаем на лету в nginx с помощью image_filter.

Люди в основном продолговатые в вертикальном направлении и фотографии себя для сервиса знакомств делают соответствующие, дизайнеры хотят квадратики, а nginx вырезает людям не совсем то, что интересует людей (лицо я имею в виду). На примере longcat получается примерно следующее:

longcat
Как с этим жить

Веб-сервер за рубежом + статика в России = ускорение скорости загрузки страницы

Время на прочтение3 мин
Количество просмотров17K
Самый частый вопрос при выборе зарубежного хостера (на примере Hetzner): «Не будет ли сайт тормозить»? Несмотря на то, что ping к Hetzner из России достаточно мал, статика (особенно тяжелая или если ее много) с серверов, размещенных в России, отдается быстрее.

Есть несколько вариантов увеличения скорости оставаясь в Hetzner:

1. Использование российских CDN-сервисов.
2. Проксирование/кэширования статики через сервер/vps, размещенный в России.

Я расскажу, как технически реализовать проксирование/кэширование статики с помощью nginx через сервер, размещенный в России.

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

Делаем nginx как front-end к apache

Время на прочтение1 мин
Количество просмотров150K
Эта тема довольно избита, но на просторах интернета не так и просто найти короткий и четкий ответ на этот вопрос. Вот по этому я решил собрать все в виде небольшой инструкции.
Читать дальше →

Преобразование меню в выпадающий список на маленьких экранах

Время на прочтение2 мин
Количество просмотров28K
image

В качестве примера того, что мы получим в результате, можно посмотреть сайт «Five Simple Steps» с адаптивной версткой. Когда окно браузера имеет маленькую ширину, меню в верхнем правом углу превращается из обычного ряда ссылок в выпадающее меню.
Читать дальше →

Бесплатный облачный PHP-MySQL хостинг для небольшого сайта на основе Amazon AWS

Время на прочтение8 мин
Количество просмотров87K
Данная инструкция не претендует на абсолютную точность, какую-либо новизну и предназначена для делающих самые первые шаги. Поэтому не судите особо строго.

Боевая задача.


Предположим нам хочется захостить небольшой проектик где-нибудь в надежном и не особо тормозящем месте. А поскольку сайт небольшой, то не будем заморачиваться и захотим от хостинга что-нибудь самое простое. Для наших целей вполне хватит PHP, MySQL и доступа по FTP.
Для решения этой задачи идеально подходит Веб сервис от Амазона в котором удивительным образом сочетается способность выдерживать большие нагрузки с бесплатным пакетом ресурсов на первый год после регистрации. В бесплатный пакет входит много чего, но в данный момент нас будут интересовать:
  • Виртуальный сервер в формате micro на основе Linux с доступом по SSH.
  • 30Гб места в Elastic Block Storage плюс 1Гб под бэкапы.
  • 15 Гб трафика в месяц.
  • Выделенный внешний IP адрес.

Причем все это при желании можно зарегистрировать и подготовить к работе за полчаса, но понадобится кредитная карта, которую примет Amazon (и снимет 2 доллара) и сотовый телефон под рукой (домашний не подойдет).

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

Постраничная навигация с MySQL при большом количестве записей

Время на прочтение7 мин
Количество просмотров41K
Рано или поздно многие крупные проекты сталкиваются с проблемами производительности при постраничной навигации по записям. Некоторые из них решают эту проблему ограничением количества доступных для просмотра записей (скажем, не больше 1000). Вполне приемлемое решение. Но в этом случаем могут возникнуть проблемы с индексированием сайта сторонними поисковиками, которые и представляют наибольшую угрозу. В этой статье я хотел бы отказаться от привычной для всех панели навигации вида «1..2..3..4..» в пользу простой «вперед… назад» (будет проще объяснить), но это не проблема реализовать подобное и с первым вариантом.
Более точно определить тему, назвав, какое количество записей считать достаточно большим для появления тормозов, не получится, так как эта цифра для всех разная и сильно зависит от того, насколько быстрые у Вас жесткие диски, сколько памяти, и какая часть Ваших данных уже закеширована в ней и тд. Но если Вы и Ваши сервера ощущают, что n-ная страница при выводе даётся тяжелее первой, и при этом не знаете, что с этим делать – статья для Вас. Но для начала, я хотел бы на пальцах объяснить, почему ОНО работает медленно.

Кстати, тест происходит на виртуальной машинке, работаю я с СУБД под рутом, версия MySQL – 5.0.32.
Читать дальше →

Фонд посевного финансирования Microsoft в России — очередной цикл приема заявок на гранты заканчивается 18 ноября

Время на прочтение1 мин
Количество просмотров2.4K
image

Всем привет!

На случай, если кто-то пропустил, Фонд посевного финансирования Microsoft в России заканчивает очередной цикл приема заявок на гранты 18 ноября. Подробности — далее…

Несколько важных моментов, которые позволят сэкономить время вам и отборочному комитету:

— Проекты рассматриваются исключительно в области программное обеспечения и интернет-сервисов;
— Финансируется только разработка (не маркетинг и т.п.);
— Должен быть прототип и внятный бизнес-план, проекты на стадии идеи по опыту не проходят дальше первой ступени отбора (не выдерживают конкуренции);
— Должно предполагаться использование по крайне мере одной из стратегических платформ MS: Windows Azure, Windows Phone, Windows 8. Использование сразу и клиента и облака — большой плюс.
— Фонд не выделяет финансирование на целевое портирование продуктов с других платформ на платформу MS. Суть в том, что грантовые деньги должны быть критичны для компании — для того, чтобы довести прототип до стадии коммерческого продукта и вывести его на рынок. И это должно быть очевидно из заявки.
— при отправке заявки требуется идентификатор в BizSpark. Заявку в BizSpark можно онлайн заполнить за 10 минут, но подтверждать ее могут 3-5 дней. Так что, если собираетесь подавать заявку на грант, лучше зарегистрироваться в BizSpark заранее, а потом уже спокойно заполнять формы на грант. Чтобы заявку в BIzSpark не отклонили, надо нормально заполнять инфо о компании/проекте. Желающих получить на халяву софт, облако, эккаунты в Windows Store и Windows Phone marketplace предостаточно, поэтому невнятные заявки сразу отклоняются.

Остальное — на www.ms-start.ru.
Читать дальше →

Большая подборка уроков по созданию CSS-кнопок

Время на прочтение2 мин
Количество просмотров84K
В этой подборке представлены уроки с наглядными примерами по созданию CSS-кнопок на любой вкус.

Fancy 3D Button with CSS3 [Демо | Подробности]


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

Анализ вовлеченности мобильных пользователей

Время на прочтение2 мин
Количество просмотров6.5K
22 октября американская аналитическая компания Flurry выпустила очередной отчет, посвященный изучению пользовательской вовлеченности. На Хабре уже мелькал голый перевод статьи, но мы в компании решили его проанализировать и в этом посте поделимся результатами.

По данным, полученным при изучении более 230 000 приложений, зарегистрированных в системе, была построена «матрица вовлеченности»: все приложения разделены на категории и ротированы в зависимости от частоты использования в неделю и % пользователей, которые продолжают пользоваться приложением по истечении 90 дней.

image

Как видно из таблицы, наилучшими показателями вовлеченности обладают приложения, имеющие социальную составляющую (социальные сети и многопользовательские игры, знакомства и различные im-сервисы), что и неудивительно. В зависимости от типа приложений, американские аналитики даже рекомендуют оптимальный вид монетизации. Так для приложений с высокой частотой использования, но небольшим процентом возвращений (квадранты II и III) — это платные приложения и in-app purchase, а для приложений с высокой долей возвратов (I и IV) — рекламная модель.

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

Определение доминирующих цветов: Python и метод k-средних

Время на прочтение2 мин
Количество просмотров39K

Assorium

На Хабре публиковалось несколько статей с алгоритмами и скриптами для выбора доминирующих цветов на изображении: 1, 2, 3. В комментариях к тем статьям можно найти ссылки ещё на десяток подобных программ и сервисов. Но нет предела совершенству — и почему бы не рассмотреть способ, который кажется самым оптимальным? Речь идёт об использовании кластеризации методом k-средних (k-means).
Читать дальше →

Стажировка PhD

Время на прочтение11 мин
Количество просмотров19K
Дорогой хабраюзер, повествователь я не выдающийся и даже не успешный, но хочу поделиться с вами своим опытом. Этим топиком я преследую две цели, во-первых, еще раз приоткрыть занавес над обучением за рубежом, может быть сподвигнуть кого-то на продолжение обучения, и, во-вторых, рассказать друзьям и тем, кому интересно про то, что пришлось пережить, чтобы не рассказывать одно и тоже много раз.
Речь пойдет о стажировке в Universidade Nova de Lisboa по программе Erasmus Mundus в направлении computer science.
Читать дальше →

Единая авторизация пользователей с поддержкой нескольких сервисов

Время на прочтение6 мин
Количество просмотров68K
Yii EAuth extension При реализации одного из проектов на Yii framework у меня возникла задача сделать регистрацию и авторизацию пользователей через сторонние сервисы (Google, Facebook, Twitter, etc).

У данной задачи есть два пути решения:
  • Использовать сервис авторизации, например Loginza;
  • Реализовывать функции авторизации самостоятельно для каждого сервиса.
UPDATE: Актуальная версия и инструкция по настройке доступны на github.com. Инструкция в данной статье подходит для EAuth версии <= 1.1.3.
Я выбрал второй вариант...

Взгляд из Google на оптимизацию сайтов

Время на прочтение2 мин
Количество просмотров29K
На сайте моей компании я выложил свой перевод интервью Андре Вейера (Andre Weyher), в прошлом — сотрудника отдела качества поиска в Google, которое он дал австралийскому интернет-маркетологу Джеймсу Норкею (James Norquay). Так как весь текст довольно длинный, здесь я перечислю основные (на мой взгляд, новые) моменты. Если кому-то интересен полный текст перевода — адрес в обсуждении ниже, из скромности. Интервью свежее, 16 октября с.г.

Основная мысль интервью — «если вы хотите, чтобы ваш сайт был повыше в результатах поиска, делайте его так, как будто никакого SEO нет. Этого от вас ждет и пользователь, и Google».

Несколько интересных ответов Андрэ, которые мне (и комментаторам оригинального интервью на сайте Джеймса) показались не столь банальными (простите, если вы это уже знаете, вдруг кто-то еще не знает):
Читать дальше →

Изучить Github за 15 минут

Время на прочтение1 мин
Количество просмотров127K
TryGit — интерактивный обучающий курс по Github в стиле Codecademy. Курс состоит из 25 мини-уроков, которые знакомят пользователя с базовыми понятиями и основными командами git, при этом ученик своими руками вводит команды в консоль, смотрит результат и читает сопровождающие надписи с объяснением происходящего.



Вот таким в будущем должно стать обучение в школах!

Конечно, 15-минутное введение не заменит полноценного учебника. Для обучения можно рекомендовать бесплатную книгу Pro Git и видеокурс Getting Git.

HybridAuth — интеграция сайта с социальными сетями

Время на прочтение7 мин
Количество просмотров38K

Введение


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

  1. Авторизация пользователей в случае закрытия Loginza или отказа от нее — в этом случае мы потеряем пользователей, в привязанных профилях которых не указан email;
  2. Дополнительная информация, например, ВКонтакте умеет отдавать фото пользователя в нескольких видах, в том числе квадратный аватар. С Логинзой получить эти данные не представляется возможным, сервис сам решает какие данные запрашивать и какие отдавать;
  3. С момента продажи Яндексу Логинза начала умирать: на запросы пользователей никто не отвечает, сервис не развивается, а находится в том виде, в котором был 1-2 года назад.

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

Google представил функцию «Disavow links» для выборочного снятия влияния спамных внешних ссылок

Время на прочтение1 мин
Количество просмотров19K


Думаю, эта новость будет интересна не только сеошникам, но и всем владельцам сайтов или просто всем тем, кому интересны алгоритмы работы поисковых систем. Так вот, корпорация Google запустала в работу функцию «Дезавуированные ссылки», которая позволяет выбирать внешние ссылки, ведущие на ваш сайт, и обнулять их значение. Т.е. вы можете показывать поисковику вручную, какие ссылки (внешние) ему учитывать, какие — нет.

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

mysqlnd

Время на прочтение2 мин
Количество просмотров49K
mysqlnd — расширение PHP, которое является драйвером для работы с MySQL по умолчанию в PHP 5.4. Оно работает напрямую с MySQL сервером, а значит, MySQL клиент, а также оверхед на работу с ним, больше не требуется!

image

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

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность