Архив рубрики: Публикации

Лучшие плагины для WordPress в каждый сайт

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

Читать

Время колокейшн

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

 

Базовые термины

Для начала уточним, что колокейшн (colocation) — это услуга по размещению IT-оборудования клиента на территории дата-центра. При этом дата-центр обеспечивает клиентскую IT-инфраструктуру электричеством, каналами связи и пр. сервисами, необходимыми для бесперебойной работы. Все, что в этой ситуации требуется от владельца оборудования — перевезти его в ЦОД, обслуживать и модернизировать, хотя даже это можно передать дата на аутсорс.

 

Пять преимуществ колокейшн

1. Сокращение капитальных затрат

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

 

2. Быстрое масштабирование

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

 

3. Выбор оборудования

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

 

4. Безопасность

В ЦОД уровень физической и сетевой безопасности в разы надежней, чем в самой защищенной серверной.

 

5. Доступность высокого уровня

У дата-центра априори более высокая скорость канала связи с интернетом и ниже сетевая задержка.

Самое важное в colocation — выбрать правильный ЦОД. Оптимально это должен быть ЦОД с Tier III или Tier IV, с возможностью не только принять под крыло ваши сервера, но и обеспечить ряд дополнительных услуг. Рано или поздно они могут понадобиться.

Ориентируйтесь на перспективы. Просчитайте необходимую мощность при экстенсивном развитии вашей IT-инфраструктуры и необходимый уровень защиты данных. Если у ЦОД есть резервные мощности и потенциально более высокие уровни безопасности, которые удовлетворят ваши возросшие потребности — это подходящий вариант.

Статья написана по материалам, предоставленным datapro.ru



2019-12-19T07:40:08
Сетевые технологии

Что делать, если после обновления php до версии 7.1/7.2/7.3 не попасть в админку wordpress

Причиной тому является старая версия самой CMS WordPress




Бывает так, что версию 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); 






2019-12-18T07:23:29
Без рубрики

Установка и настройка кеширующего прокси-сервера VARNISH за NGINX и Apache2 на Ubuntu 18.04 LTS для WordPress в 2019 году

Устанавливаем Varnish:




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 может быть представлена следующим образом:







Если обращение к бэкенду происходит при этом из функции 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 и UBUNTU 18.04 LTS




А что если вы захотите изменить порт, на котором 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/;




Настройка WordPress — плагин «Varnish HTTP Purge»




Устанавливаем в панели администрирования 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



2019-12-18T03:40:30
wordpress

Новый Edge будет принудительно установлен на Windows 10



























Rate this post

Центр обновления 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 дополнения, в числе которых есть инструменты для блогеров, новостные расширения, различные поисковые и торговые системы, социальные сети и прочее.

Microsoft также добавила панель поиска для облегчения навигации, а ещё обновила некоторые расширения, такие как блокировщики рекламы и торговые инструменты. Учитывая, что Microsoft Edge выйдет в релиз уже в будущем месяце, вполне логично, что компания дала возможность опробовать новинку заранее. Это позволит устранить различные баги и ошибки, которые могут появиться при использовании надстроек.

В целом, софтверный гигант активно развивает свой веб-обозреватель и, очевидно, скоро заменит им классический браузер Edge. Это позволит компании занять куда более крупную долю на рынке, чем сейчас, ведь классический «синий» браузер, несмотря на некоторые уникальные возможности, так и остался в аутсайдерах. Переход на новый движок позволит не только выпустить его на новых для Microsoft операционных системах, вроде Linux и macOS, но также увеличить охват аудитории.

Edge на движке Chromium станет доступен в январе

На ежегодной ежегодной конференции 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.


2019-12-17T14:45:51
Windows

Новые иконки в Windows 10 – Microsoft поменяет внешний вид значков



























Rate this post

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

новые иконки Windows 10

О планах по изменению оформления Windows 10 известно уже около года, напоминает The Verge. Значки приложений пакета Microsoft Office уже оформили в новом “текучем” (Fluent) дизайне, но это только начало.

В публикации на платформе Medium вице-президент Microsoft по дизайну и исследованиям Джон Фридман рассказал про “калейдоскоп значков” с новыми “цветами, материалами и отделкой”. Многие значки узнаваемы, но свежее оформление помогает им выглядеть единообразно.

Большая часть изменений — переработка уже существующих иконок, отмечает The Verge. В Windows 10 много значков, которые визуально различаются, некоторые из них не изменялись много лет, указывает издание. Обновлённые значки выглядят более современно и сочетаются друг с другом.

новые иконки Windows 10

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

Microsoft скоро  изменит дизайн логотипа платформы Windows и многих иконок приложений операционной системы. Microsoft показала более 100 обновлённых иконок.

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

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

Ранее разработчики представили логотип браузера Microsoft Edge на движке Chromium. Он оказался пасхальным яйцом во встроенной мини-игре о серфинге в последних версиях Edge Canary. На новом логотипе буква ‎Е уже меньше похожа на Internet Explorer, он также выполнен в стиле Fluent Design, как и значки офисных программ Microsoft.


2019-12-17T13:36:26
Windows