Как да споделяте Memcached между множество WordPress уебсайтове на един и същ сървър? 100% безгрешно ръководство за конфигуриране.

Един сървър, изпълняващ множествоWordPressУебсайт, споделенСпоменМоже ли това да причини проблеми с презаписване на данни или преслушване?

Тази статия предоставя подробно ръководство за това как перфектно да изолирате преходни данни и данни от кеша на обекти между различни сайтове, като конфигурирате отделен префикс за кеш (WP_CACHE_KEY_SALT) и скриптове за кеширане на обекти.

100% елиминира конфликтите на данни, позволявайки на множество сайтове да се наслаждават едновременно на върховното ускорение на ниво памет, и включва съвети за безопасност за предотвратяване на капани в производствени среди!

Преди няколко дни един приятел ме попита за трите си WordPress уебсайта, работещи на неговия сървър. Искаше да конфигурира Memcached, за да ги ускори, но се притесняваше, че данните ще се объркат.

В този момент се засмях, защото и аз бях попаднал в този капан.

Как да споделяте Memcached между множество WordPress уебсайтове на един и същ сървър? 100% безгрешно ръководство за конфигуриране.

Честно казано, Memcached е изключително лесен за настройване за един сайт, но става интересно, когато става въпрос за едновременно съществуване на множество сайтове. Защо?

По подразбиране Memcached поставя преходните и обектни кешове на всички уебсайтове в един и същ пул. Представете си, ако уебсайтове A и B използват един и същ кеш ключ - това би причинило хаос. Данните на A биха презаписали директно тези на B и двата уебсайта биха започнали да „си намесват“ данните си един в друг.

Това, с което се сблъсках, беше още по-смешно, едноЕлектричество доставчикаСтраницата с подробности за продукта на уебсайта показваше съдържание от статия от друг блог. Бях изумен и се чудех: „Какво е това???“

Отне ми цяла нощ да го разбера; оказа се, че е конфликт на ключове за кеш.

Така че днес споделям моя метод за конфигуриране с надеждата, че той може да помогне на приятели със същите нужди. Все още го проучвам самият и някои от идеите ми може да не са напълно развити, но този метод работи добре за мен.

Подготовка на сървърната среда

Преди да започнете да конфигурирате WordPress, трябва да се уверите, че сървърът има инсталирана услугата Memcached и разширението PHP Memcached.

Как да инсталирате Memcached в HestiaCP?

Вземайки Ubuntu като пример, той включва само три реда команди.

sudo apt update
sudo apt install memcached php-memcached
sudo systemctl restart php8.x-fpm  # 根据你的 PHP 版本改

След инсталирането, не забравяйте да проверите дали услугата Memcached работи.

sudo systemctl status memcached

Ако видите „активен (работи)“, това означава, че няма проблем.

Моля, обърнете внимание, че имената на пакетите може да се различават в различните системи. Тази команда обикновено се използва в Debian системи. Ако... CentOS За други дистрибуции може да се наложи да използвате yum или dnf, за да ги инсталирате.

По това време използвах Ubuntu 20.04 и целият процес мина сравнително гладко.

Основна операция: Конфигуриране на префикса на кеша

Тази стъпка е душата на цялата конфигурация и ключът към предотвратяване на объркване с данните.

Трябва да добавите уникален префикс за кеширане към файла wp-config.php в главната директория на всеки WordPress уебсайт.

Отворете файла wp-config.php на първия уебсайт и намерете този ред с коментари.

/* That's all, stop editing! Happy blogging. */

В тази индустрия上方Добави към

// 网站 A 的配置
define( 'WP_CACHE_KEY_SALT', 'site1_unique_string_' );

След това отворете файла wp-config.php на втория уебсайт и добавете подобна конфигурация.

// 网站 B 的配置
define( 'WP_CACHE_KEY_SALT', 'site2_unique_string_' );

Казвам ви, низът след WP_CACHE_KEY_SALT трябва да бъде...Абсолютно уникаленДа. Предлагам да използвате директно името на домейна на уебсайта или неговото съкращение, например site1_com_ или site2_net_.

Бях мързелив и използвах числа, но три месеца по-късно напълно забравих кой номер на кой уебсайт съответства и трябваше да ги търся един по един, което беше истинско главоболие.

Помислете за това: Memcached работи, като съхранява и извлича данни въз основа на кеш ключове. Ако зададете уникален префикс за всеки уебсайт, данните им естествено ще бъдат изолирани и няма да си пречат взаимно.

Това е все едно да дадете на всеки уебсайт собствен шкаф. Въпреки че всички са в една и съща стая, ключовете са различни, така че данните няма да се объркат.

Активиране на кеширането на обекти

След конфигурирането на префикса, следващата стъпка е да разрешите на WordPress действително да използва Memcached.

Тук има два варианта и аз опитах и ​​двата. Всеки си има своите предимства.

Вариант 1: Метод с плъгин (най-безпроблемен)

Влезте в администраторския панел на WordPress и инсталирайте плъгин за кеширане, който поддържа Memcached.

Препоръчано W3 Общо CacheСтабилността е добра. След инсталацията, в настройките на плъгина изберете Memcached като тип кеш, въведете 127.0.0.1 като адрес на сървъра и въведете порта по подразбиране 11211, след което запазете.

Ако искате по-чисто решение, можете да го инсталирате директно. Кеш на обекти от Memcached Този плъгин е специално проектиран за тази цел; той няма други допълнителни функции.

Честно казано, първоначално си помислих, че подходът с плъгините е доста добър, тъй като е удобен. Но по-късно открих, че някои плъгини идват с куп функции, от които не се нуждая, и винаги се притеснявам за актуализации, страхувайки се, че изведнъж ще добавят някоя функция, която ще обърка конфигурацията ми.

Вариант 2: Ръчно внедряване на object-cache.php (по-контролируемо)

Ако сте малко перфекционист като мен и не искате да инсталирате твърде много плъгини, можете да използвате това решение.

Изтеглете от официалното хранилище за плъгини на WordPress. Кеш на обекти от Memcached Този плъгин или можете да намерите най-новия файл object-cache.php в GitHub. След това качете извлечения файл object-cache.php в директорията wp-content на всеки уебсайт чрез FTP или SSH.

Обърнете внимание, че това е главната директория на wp-content, а не поддиректорията на plugins.

След като го добавите, WordPress автоматично ще разпознае и активира кеша. Не е необходимо да конфигурирате нищо, защото ще прочете WP_CACHE_KEY_SALT, който сте задали по-рано в wp-config.php.

Исках да спестя време, затова използвах това решение, главно защото е контролируемо. Ако възникне проблем, знам къде да търся решения и няма да бъда изненадан от автоматичните актуализации на плъгините.

Проверете дали конфигурацията е ефективна.

След като приключите с подготовката на пробата, определено ще искате да знаете дали е била успешна, нали?

Най-лесният начин е да проверите състоянието на Memcached. Свържете се, използвайки telnet или nc tools.

echo "stats" | nc 127.0.0.1 11211

След това ще видите куп статистики. Обърнете специално внимание на стойностите на `cmd_set` и `get_hits` и обновете страницата няколко пъти, за да видите дали се увеличават. Ако е така, това означава, че кешът работи правилно.

Друг по-интуитивен начин да проверите това е да отворите и двата уебсайта едновременно и да видите дали си пречат. Ако уебсайт А не показва съдържание от уебсайт Б, това означава, че префиксът работи.

По това време направих още по-строг тест. Зададох различни временни стойности на два различни уебсайта и след това използвах инструмента nc, за да заявя директно данните в Memcached. Наистина успях да видя две двойки ключ-стойност с различни префикси, без никакво объркване.

В този момент наистина почувствах, че съм постигнал нещо велико и само като си помисля за това, се чувствам страхотно.

Не пренебрегвайте проблемите с безопасността

Тъй като всички уебсайтове споделят един Memcached екземпляр, съществува риск за сигурността, за който трябва да сте наясно.

На теория, ако други потребители са на сървъра, те биха могли да прочетат кешираните ви данни през локален порт. Въпреки че това изисква определено ниво на техническа експертиза, винаги е разумно да бъдете предпазливи.

Следователно, трябва да се уверите, че вашият Memcached работи правилно. Никога не слушайте публични IP адреси.В конфигурационния файл `/etc/memcached.conf` се уверете, че този ред е наличен.

-l 127.0.0.1

По този начин Memcached ще слуша само локалния адрес за обратна връзка и няма да бъде достъпен отвън.

Ако имате изключително високи изисквания за сигурност или ако вашият сървър хоства уебсайтове, с които другите потребители не се чувстват комфортно, предлагам ви да обмислите използването на... Redis Redis може да се използва като заместител на Memcached. Той поддържа изолация на множество бази данни и проверка на парола, предлагайки значително по-добра сигурност.

Redis обаче е малко по-сложен за конфигуриране от Memcached. Ако го използвате само за лични цели или за малки екипи, Memcached с ограничение за слушане 127.0.0.1 е основно достатъчен.

Някои срещнати капани

Накрая, нека споделя няколко капана, с които се сблъсках, надявайки се да ви помогна да избегнете някои отклонения.

Версията на PHP разширението трябва да е съвместима.Преди се сблъсках със ситуация, в която инсталирах разширението php-memcached, но WordPress не го разпозна. По-късно открих, че това се дължи на несъответствие между версиите на PHP. Уверете се, че проверявате внимателно вашата версия на PHP, когато инсталирате разширения, за да избегнете инсталирането на грешна.

Уверете се, че сте посочили правилно пътя до файла object-cache.php.Уверете се, че го поставяте в главната директория на wp-content, а не в директорията с плъгини. Един мой приятел го постави на грешното място и прекара много време в опити да го поправи, но без успех.

Не използвайте твърде кратък низ за префикса на кеша.Първоначално използвах a_ или b_, но по-късно открих, че са твърде кратки и лесно се сблъскват със собствените кеш ключове на WordPress. Трябва поне да използвате произволен низ от седем или осем символа или съкращение на домейн.

Не забравяйте да изчистите кеша и за двата уебсайта.Веднъж изчистих кеша само на един уебсайт, но другият уебсайт все още запазваше старите данни, което доведе до несъответствие в съдържанието на двата уебсайта. Отне ми много време, за да открия проблема.

Честно казано, не знам дали тези преживявания ще бъдат полезни за всички, но ги споделих безрезервно.

Пишете в края

Конфигурирането на Memcached за множество сайтове не е технически сложно; основният проблем е конфигурирането на префикса на кеша. Дяволът обаче се крие в детайлите. Проблеми със съвпадението на версиите, файловите пътища и конфигурациите за сигурност могат да ви създадат значителни проблеми.

Използвам този метод от почти година, управлявам три WordPress сайта и досега не съм се сблъсквал с никакви сериозни проблеми. Ако правите нещо подобно, може би е добре да го опитате.

Между другото, ако имате по-добри решения или сте се сблъскали с интересни проблеми, не се колебайте да оставите коментар и да ги споделите. Ще се радвам да се уча от вас.

В края на краищата, колкото повече хора знаят за това, толкова по-малко хора ще попаднат в капана, нали?

След като сте прочели дотук, ако ви е било полезно, моля, харесайте го и го споделете. Ако искате да получавате актуализации първи, можете също да ме последвате!

Благодаря ви, че прочетохте статията ми. Ще се видим следващия път.

Блог на Hope Chen Weiliang ( https://www.chenweiliang.com/ Статията „Как да споделяте Memcached с множество WordPress уебсайтове на един и същ сървър? Пълното ръководство за конфигуриране за предотвратяване на 100% грешки“, споделена тук, може да ви бъде полезна.

Добре дошли да споделите връзката към тази статия:https://www.chenweiliang.com/cwl-34368.html

За да отключите още скрити трикове🔑, заповядайте в нашия Telegram канал!

Споделете и харесайте, ако ви харесва! Вашите споделяния и харесвания са нашата постоянна мотивация!

 

发表 评论

Вашият имейл адрес няма да бъде публикуван. Използват се задължителните полета * Етикет

Преминете към Top