Я думаю, что каждый, кто хоть раз ставил дефолтный шаблон Вордпресса понимает, что без дополнительных плагинов — это просто страничка в интернете со скудным функционалом и примитивным дизайном.
Я думаю, что каждый, кто хоть раз ставил дефолтный шаблон Вордпресса понимает, что без дополнительных плагинов — это просто страничка в интернете со скудным функционалом и примитивным дизайном.
Как понять, что поддержка собственного центра обработки данных тянет слишком много ресурсов и пора переходить на колокейшн? Как только вы заметите ощутимый рост трафика или проект вырастет настолько, что текущих технических и кадровых ресурсов станет недостаточно.
Для начала уточним, что колокейшн (colocation) — это услуга по размещению IT-оборудования клиента на территории дата-центра. При этом дата-центр обеспечивает клиентскую IT-инфраструктуру электричеством, каналами связи и пр. сервисами, необходимыми для бесперебойной работы. Все, что в этой ситуации требуется от владельца оборудования — перевезти его в ЦОД, обслуживать и модернизировать, хотя даже это можно передать дата на аутсорс.
Расходы на организацию, поддержку и масштабирование собственной серверной исчисляются сотнями тысяч. Тем более, если серверная организуется с учетом схем резервирования. При колокейшн вместо капитальных затрат у бизнеса остаются только операционные, которые все равно будут меньше за счет «эффекта масштаба» ЦОД.
В рамках колокейшн бизнес может наращивать ИТ-инфраструктуру без оглядки на собственные кадровые ресурсы и свободные площади.
При colocation оборудование у клиента свое, то есть сервера и конфигурации подбираются точно под задачи, перспективы бизнеса. Содержание, обслуживание и администрирование также остается в ведении владельца.
В ЦОД уровень физической и сетевой безопасности в разы надежней, чем в самой защищенной серверной.
У дата-центра априори более высокая скорость канала связи с интернетом и ниже сетевая задержка.
Самое важное в colocation — выбрать правильный ЦОД. Оптимально это должен быть ЦОД с Tier III или Tier IV, с возможностью не только принять под крыло ваши сервера, но и обеспечить ряд дополнительных услуг. Рано или поздно они могут понадобиться.
Ориентируйтесь на перспективы. Просчитайте необходимую мощность при экстенсивном развитии вашей IT-инфраструктуры и необходимый уровень защиты данных. Если у ЦОД есть резервные мощности и потенциально более высокие уровни безопасности, которые удовлетворят ваши возросшие потребности — это подходящий вариант.
Статья написана по материалам, предоставленным datapro.ru
Бывает так, что версию php обновить пришлось, а версию wordpress пока обновлять рано и в итоге мы имеем следующую ошибку:
Error thrown
Cannot create references to/from string offsets
Открываем в корне сайта файл wp-login.php и
Строку:
$user = wp_signon('', $secure_cookie);
Заменяем на:
$user = wp_signon(array(), $secure_cookie);
apt-get install varnish
Файл параметров запуска располагается здесь — /etc/default/varnish. В DAEMON_OPTS задаём следующие параметры:
DAEMON_OPTS="-a :8181
-T 127.0.0.1:8282
-f /etc/varnish/default.vcl
-S /etc/varnish/secret
-s malloc,128m"
-a — задаёт порт, на котором Varnish будет принимать соединения, в нашем случае от фронтенда — nginx;
-T — здесь крутится админка, подробнее в описании к флагу -S;
-f — файл с конфигурацией VCL — специальном языке, предназначенном для определения правил обработки запросов и кэширования в Varnish;
-S — Varnish имеет панель администрирования. Для входа необходимо выполнить команду varnishadm, при этом пользователь должен иметь права на чтение файла /etc/varnish/secret для прохождения аутентификации;
-s указание места хранения кэша и его размер, в данном случае 128Mб в оперативной памяти.
Как вы уже, наверное, поняли, самое интересное нас ждёт в файле с правилами обработки запросов. Во время старта процесса Varnish’а данный файл компилируется. В VCL используется несколько подразделов-функций, в которых описываются эти правила. Кратко расскажу о них, полное описание рекомендую прочитать на официальном сайте.
sub vcl_recv — данная функция используется когда приходит запрос от клиента;
sub vcl_pass — выполняется, когда запрос клиента необходимо передать напрямую бэкенду, не кэшировать и не искать соответствия в кэше;
sub vcl_hash — определяет правила кэширования, можно использовать несколько хранилищ для одного и того же документа, в зависимости от разных условий, например, поддержки сжатия клиентом, или каких-либо других особенностей клиента. В нашем случае не будет использоваться, так как клиент у нас для Varnish’а один — nginx на фронтенде;
sub vcl_backend_response — данная функция используется когда приходит запрос от бэкенда (nginx);
sub vcl_deliver — используется непосредственно перед отправкой данных клиенту, например, для добавления/изменения заголовков.

Если обращение к бэкенду происходит при этом из функции vcl_miss ответ бэкенда отправляется и в кэш. Сам язык очень похож на C. Приступим к настройке. Открываем файл /etc/varnish/default.vcl и начинаем кодить:
# Сообщаем компилятору о том, что используется новая версия VCL 4
vcl 4.0;
# Настройки бэкенда
backend default {
.host = "127.0.0.1";
.port = "8080";
}
# Диапазон IP/Хостов, которым разрешено выполнять PURGE-запросы для очистки кэша
acl purge {
"localhost";
"127.0.0.1";
}
# Получение запроса от клиента
sub vcl_recv {
# Разрешить очистку кэша вышеописанному диапазону
if (req.method == "PURGE") {
# Если запрос не из списка, то разворачивать
if (!client.ip ~ purge) {
return(synth(405, "This IP is not allowed to send PURGE requests."));
}
return (purge);
}
# POST-запросы а также страницы с Basic-авторизацией пропускать
if (req.http.Authorization || req.method == "POST") {
return (pass);
}
# Пропускать админку и страницу входа
if (req.url ~ "wp-(login|admin)" || req.url ~ "preview=true") {
return (pass);
}
# Пропускать sitemap и файл robots, у меня sitemap генерируется плагином Google XML Sitemaps
if (req.url ~ "sitemap" || req.url ~ "robots") {
return (pass);
}
# Удаляем cookies, содержащие "has_js" и "__*", добавляемые CloudFlare и Google Analytics, так как Varnish не будет кэшировать запросы, для которых установлены cookies.
set req.http.Cookie = regsuball(req.http.Cookie, "(^|;s*)(_[_a-z]+|has_js)=[^;]*", "");
# Удаление префикса ";" в cookies, если вдруг будет обнаружен
set req.http.Cookie = regsub(req.http.Cookie, "^;s*", "");
# Удаляем Quant Capital cookies (добавляются некоторыми плагинами)
set req.http.Cookie = regsuball(req.http.Cookie, "__qc.=[^;]+(; )?", "");
# Удаляем wp-settings-1 cookie
set req.http.Cookie = regsuball(req.http.Cookie, "wp-settings-1=[^;]+(; )?", "");
# Удаляем wp-settings-time-1 cookie
set req.http.Cookie = regsuball(req.http.Cookie, "wp-settings-time-1=[^;]+(; )?", "");
# Удаляем wp test cookie
set req.http.Cookie = regsuball(req.http.Cookie, "wordpress_test_cookie=[^;]+(; )?", "");
# Удаляем cookie, состоящие только из пробелов (или вообще пустые)
if (req.http.cookie ~ "^ *$") {
unset req.http.cookie;
}
# Для статических документов удаляем все cookies, пусть себе кэшируются
if (req.url ~ ".(css|js|png|gif|jp(e)?g|swf|ico|woff|svg|htm|html)") {
unset req.http.cookie;
}
# Если установлены cookies "wordpress_" или "comment_" пропускаем напряиую к бэкенду
if (req.http.Cookie ~ "wordpress_" || req.http.Cookie ~ "comment_") {
return (pass);
}
# Если cookie не найдено, удаляем данный параметр из пришедшего запроса как таковой
if (!req.http.cookie) {
unset req.http.cookie;
}
# Не кэшировать запросы с установленными cookies, это уже не касается WordPress
if (req.http.Authorization || req.http.Cookie) {
# Not cacheable by default
return (pass);
}
# Кэшировать всё остальное
return (hash);
}
sub vcl_pass {
return (fetch);
}
sub vcl_hash {
hash_data(req.url);
return (lookup);
}
# Приём ответа от бэкенда
sub vcl_backend_response {
# Удаляем ненужные заголовки
unset beresp.http.Server;
unset beresp.http.X-Powered-By;
# Не хранить в кэше robots и sitemap и .xml файлы
if (bereq.url ~ "sitemap" || bereq.url ~ "robots" || bereq.url ~ ".xml") {
set beresp.uncacheable = true;
set beresp.ttl = 30s;
return (deliver);
}
# Для статических файлов, которые отдаёт бэкенд...
if (bereq.url ~ ".(css|js|png|gif|jp(e?)g)|swf|ico|woff|svg|htm|html") {
# Удаляем все куки
unset beresp.http.cookie;
# Устанавливаем срок хранения в кэше - 70 дней
set beresp.ttl = 70d;
# Устанавливаем заголовки Cache-Control и Expires, сообщая браузеру о том, что эти файлы стоит сохранить в кэше клиента и не нагружать лишниий раз наш сервер
unset beresp.http.Cache-Control;
set beresp.http.Cache-Control = "public, max-age=6048000";
set beresp.http.Expires = now + beresp.ttl;
}
# Не кэшировать админку и страницу логина
if (bereq.url ~ "wp-(login|admin)" || bereq.url ~ "preview=true") {
set beresp.uncacheable = true;
set beresp.ttl = 30s;
return (deliver);
}
# Разрешить устанавливать куки только при обращении к этим путям, всё остальное будет резаться
if (!(bereq.url ~ "(wp-login|wp-admin|preview=true)")) {
unset beresp.http.set-cookie;
}
# Не кэшировать результат ответа на POST-запрос или Basic авторизации
if ( bereq.method == "POST" || bereq.http.Authorization ) {
set beresp.uncacheable = true;
set beresp.ttl = 120s;
return (deliver);
}
# Не кэшировать результаты поиска
if ( bereq.url ~ "?s=" ){
set beresp.uncacheable = true;
set beresp.ttl = 120s;
return (deliver);
}
# Не кэшировать страницы ошибок, только нужные вещи в кэше!
if ( beresp.status != 200 ) {
set beresp.uncacheable = true;
set beresp.ttl = 120s;
return (deliver);
}
# Хранить в кэше всё прочее на протяжении одного дня
set beresp.ttl = 1d;
# Срок жизни кэша после истечения его TTL
set beresp.grace = 30s;
return (deliver);
}
# Действия перед отдачей результата пользователю
sub vcl_deliver {
# Удаляем ненужные заголовки
unset resp.http.X-Powered-By;
unset resp.http.Server;
unset resp.http.Via;
unset resp.http.X-Varnish;
return (deliver);
}
После чего выполняем команду:
service varnish restart
А что если вы захотите изменить порт, на котором Varnish будет принимать входящие соединения или изменить объём кэша. Судя по официальной документации нужно изменить файл с параметрами запуска Varnish, располагающийся по пути: /etc/default/varnish и перезапустить сервис. Но нет! Ничего не изменится, и если мы зайдём в top и нажмем на клавишу ‘c’, то увидим, что сервис запущен с прежними настройками. А всё дело в том, что в новой версии Ubuntu используется systemd вместо init.d в качестве системы инициализации, и поэтому нужно зайти в файл /lib/systemd/system/varnish.service и прописать там в директиве ExecStart те же параметры запуска:
[Unit]
Description=Varnish HTTP accelerator
[Service]
Type=forking
LimitNOFILE=131072
LimitMEMLOCK=82000
ExecStartPre=/usr/sbin/varnishd -C -f /etc/varnish/default.vcl
ExecStart=/usr/sbin/varnishd -a :8181 -T 127.0.0.1:8282 -f /etc/varnish/default.vcl -S /etc/varnish/secret -s malloc,128m
ExecReload=/usr/share/varnish/reload-vcl
[Install]
WantedBy=multi-user.target
После сохранения выполнить следующие команды для вступления изменений в силу:
systemctl daemon-reload service varnish restart
В данный момент данная проблема отписана разработчикам, когда и как они её решат — неизвестно, поэтому на всякий случай производите одинаковые изменения в обоих файлах, чтобы однажды после апдейта всё не упало.
После чего нужно изменить порт доступа у nginx
proxy_pass: http://127.0.0.1:8181/;
Устанавливаем в панели администрирования WP плагин «Varnish HTTP Purge». Теперь при обновлении данных на измененные страницы будет отправлен PURGE-запрос, очищающий кэш в Varnish, и для посетителей данные всегда будут обновлёнными.
После чего нужно ещё настроить пару строчек по примеру:

Varnish Vontrol Key берется из файла: /etc/varnish/secret
Статья на основе: https://habr.com/ru/post/278189/
Настройка множества сайтов на одном сервере: https://stackoverflow.com/questions/3334023/configure-multiple-sites-with-varnish
Центр обновления Windows автоматически распространит новый Edge. Компания Microsoft сообщила подробности о запуске принципиально новой версии Microsoft Edge на движке Chromium.
Для большинства пользователей Windows 10 обновление будет доставлено автоматически через Windows Update (Центр обновления Windows). Новый браузер просто заменит собой старый на Windows 10 RS4 (апрельское обновление 2018 года) и более ранних версиях.
Конечно, это может вызвать проблемы с совместимостью. На этот случай Microsoft выпустила инструментарий Blocker Toolkit для корпоративных пользователей, который позволит контролировать установку.
Как ожидается, новый Microsoft Edge поступит в публичный доступ 15 января 2020 года на более чем 90 языках.
Следующий логичный вопрос — когда браузер будет поставляться в Windows 10? В последнее время ходили слухи, что новый Edge может появиться в Windows 10 20H1 или даже в 20H2, потому что RTM-версия 20H1 ожидается в декабре, еще до релиза стабильной версии Edge. Как теперь оказывается, данные предположения не подтвердились, потому что браузер будет автоматически устанавливаться в Windows 10 после его выхода.
Развертывание будет медленным и постепенным. Сначала браузер получит относительно небольшая группа пользователей, а затем эта группа будет планомерно расширяться. Что касается новых установок Windows, то Edge будет поставляться OEM-производителям сразу после официального релиза.
Установка Edge не будет привязана к крупному обновлению функций Windows 10. Приложение просто будет встроено в систему как отдельный продукт. Edge заменит в системе классический Edge, известный как Edge Spartan. Если вы собираетесь купить новый компьютер в следующем году, то велика вероятность, что Edge на Chromium уже будет доступен «из коробки».
Microsoft планирует 15 января 2020 года выпустить стабильную сборку нового браузера Edge на основе исходных кодов проекта Chromium. В рамках подготовки к этому событию, компания представила обновлённый сайт с расширениями для своего интернет-обозревателя. На данный момент в базе ресурса насчитываются 162 дополнения, в числе которых есть инструменты для блогеров, новостные расширения, различные поисковые и торговые системы, социальные сети и прочее.
На ежегодной ежегодной конференции Ignite 2019 компания Microsoft официально представила новый Microsoft Edge на движке Chromium для Windows и macOS.
Новый Microsoft Edge использует тот же движок Chromium, что и браузер Chrome от Google. Microsoft ведёт его разработку и тестирование уже больше года. Теперь компания сообщила, что браузер поступит в публичный доступ 15 января 2020 года на более чем 90 языках. А пока он предлагается для ознакомительного скачивания. На данный момент речь идёт о коммерческих заказчиках. Для обычных пользователей релиз состоится весной.
Разработчики также раскрыли новые подробности о функциях. Большое внимание уделено безопасности и приватности. В Microsoft Edge по умолчанию установлена функция предотвращения отслеживания. С помощью SmartScreen и функции предотвращения отслеживания пользователи будут защищены от фишинга, вредоносного ПО и новых видов атак — таких как криптоджекинг. Браузер также предлагает новый режим инкогнито InPrivate, работающий на постоянной основе.

Новая функция Collections доступна в предварительной версии Microsoft Edge. Она упрощает создание подборок веб-контента, организацию поиска и экспорт нужного контента в Word и Excel.
Новые иконки в Windows 10 будут полностью переосмыслены. Microsoft показала, как сделает внешний вид интерфейса операционной системы более цельным. Изменение дизайна происходит на фоне прекращения поддержки Windows 7. Сейчас в нем используются сотни разных значков, многие из которых не менялись годами. Их решено перерисовать в едином стиле.

О планах по изменению оформления Windows 10 известно уже около года, напоминает The Verge. Значки приложений пакета Microsoft Office уже оформили в новом “текучем” (Fluent) дизайне, но это только начало.
В публикации на платформе Medium вице-президент Microsoft по дизайну и исследованиям Джон Фридман рассказал про “калейдоскоп значков” с новыми “цветами, материалами и отделкой”. Многие значки узнаваемы, но свежее оформление помогает им выглядеть единообразно.
Большая часть изменений — переработка уже существующих иконок, отмечает The Verge. В Windows 10 много значков, которые визуально различаются, некоторые из них не изменялись много лет, указывает издание. Обновлённые значки выглядят более современно и сочетаются друг с другом.

Новые иконки в Windows 10 – основной принцип Fluent Design применительно к значкам — использование поверхностей с разными оттенками одного цвета. При помощи теней эти поверхности могут как бы располагаться на разном уровне, помогая значкам казаться трехмерными.
Microsoft скоро изменит дизайн логотипа платформы Windows и многих иконок приложений операционной системы. Microsoft показала более 100 обновлённых иконок.
В Windows 10 множество иконок, которые не всегда сочетаются друг с другом, а некоторые из них начали использоваться много лет назад и уже не соответствуют брендбуку компании.
В нынешнем логотипе Windows, используемом как в Windows 8, так и в Windows 10, задействован только один цвет. В новом варианте лого программной платформы используется нечто, напоминающее градиент, за счёт чего каждый сегмент изображения получает свой собственный цвет.