IT

Мої нотатки на IT тематику (сервери, сайти та все супутнє)

Правильно вставляем код Google Analytics на Drupal сайт

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

Для вставки кода воспользуемся встроенными возможностями Drupal для вставки CSS и JS файлов в код страницы. Это особенно полезно если используются модули минимизации и объединения таких файлов (как, например, Advanced CSS/JS Aggregation).

FreeBSD. Бэкап файлов в облачное хранилище (Google Drive)

Раньше, в одной из заметок, я описывал настройку локального бэкапа файлов на сервере с помощью rsync. Но локальный бэкап хорошо, но хотелось и удаленный. Можно, конечно, при наличии нескольких доступных серверов организовать через тот же rsync, но хотелось сделать это в облако, более того в облако надежное (я таковым считаю Google Drive). Плюсы Google Drive:

  1. 15Гб места на аккаунт бесплатно.
  2. Аккаунтов можно завести любое необходимое множество.
  3. При необходимости место расширяется до 100Гб всего за $1.99 в месяц или же 1Тб за $9.99 в месяц и т.д..
  4. Исключительная надежность.
  5. Быстрый и простой доступ из любого места (как с помощью специального ПО, так и через браузер).

Элементы защиты от DDOS посредством nginx + ipfw

Недавно у меня на хостинге появился сайтик на WordPress, уж не знаю чем он так полюбился кому, но стал замечать, что регулярно идет к нему POST запрос на wp-admin.php с разных адресов  - видимо пароли подбирают или еще что-то. Это создавало ненужную нагрузку на сервер (в моем случае не критичную, но все же).

Озадачился решением проблемы. Гугление дало вариант, который мне понравился.

rsync и локальный бэкап сайтов на сервере

Вообще-то rsync конечно же дает прекрасные инструменты для удаленного архивирования по сети. Но... Для начала неплохо иметь копии локально, за N дней. На случай сбоя, какой-то правки неправильной и т.п.

Мне хотелось иметь архивы сайтов, т.к. иногда находит "порукоблудить" и не всегда сразу заметишь, что чего-то напортачил. И когда через день-два это все всплывает - начинаешь мучительно вспоминать какие строки и где менял. Сначала я просто архивировал (опять же через periodic daily) папки с сайтами и хранил N, а иногда и M (шутка) дней. Но архивирование очень сильно поглощает процессор - задача непростая. К тому же большинство сайтов основной свой объем имеют за счет картинок, архивов и т.п. (тексты в основном в БД, остаются скрипты, но их не так много по объему) - т.е. вещей в принципе не жмущихся архиватором. Следовательно проще просто копировать файлы. Но зачем копировать все, если за день меняется от силы 10% содержимого сайта?

Drupal + nginx + apache (mod_php) отдаем "статику" через nginx

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

Проблема с CMS Drupal (именно с ней я больше всего работаю - она очень удобна и практична) состоит в том, что файлы стилей (css), javascript (js), а в при применении некоторых модулей (например colorbox, ubercart) и изображения (разных стилей - превью и т.д.) генерируются динамически. Т.е. система физически записывает файл на диск (формирует объединенный css или js, обрабатывает исходное изображение) только после первого к нему обращения. При чем после сброса кэша файлы css и js меняют свое имя и создается заново. Именно поэтому самый распространенный в сети пример конфига nginx для отдачи статики не подходит.

Здесь я опишу альтернативный вариант конфига для nginx+apache+drupal, позволяющий отдавать картинки, css и js через nginx и при этом не боятся получить ошибку 404 Not Found при сбросе кэша и/или первичном формировании картинки.

Сторінки