Memcached faylini bir nechta WordPress veb-saytlarida bitta serverda qanday ulashish mumkin? 100% xatolikka chidamli yakuniy konfiguratsiya qo'llanmasi.

Bitta server bir nechta serverda ishlaydiWordPressVeb-sayt, ulashilganYashirilganBu ma'lumotlarni qayta yozish yoki o'zaro ta'sir muammolariga olib kelishi mumkinmi?

Ushbu maqolada alohida kesh prefiksi (WP_CACHE_KEY_SALT) va obyekt kesh skriptlarini sozlash orqali turli saytlardagi vaqtinchalik va obyekt kesh ma'lumotlarini qanday qilib mukammal ajratish bo'yicha bosqichma-bosqich qo'llanma keltirilgan.

Ma'lumotlar ziddiyatlarini 100% bartaraf etadi, bu bir nechta saytlarga bir vaqtning o'zida xotira darajasidagi eng yuqori tezlashtirish tajribasidan bahramand bo'lish imkonini beradi va ishlab chiqarish muhitida xavflarning oldini olish bo'yicha xavfsizlik bo'yicha maslahatlarni o'z ichiga oladi!

Bir necha kun oldin, bir do'stim mendan serverida ishlaydigan uchta WordPress veb-sayti haqida so'radi. U Memcached-ni ularni tezlashtirish uchun sozlamoqchi edi, lekin ma'lumotlar chalkashib ketishidan xavotirda edi.

O'sha paytda kuldim, chunki men ham bu tuzoqqa tushib qolgan edim.

Memcached faylini bir nechta WordPress veb-saytlarida bitta serverda qanday ulashish mumkin? 100% xatolikka chidamli yakuniy konfiguratsiya qo'llanmasi.

Rostini aytsam, Memcachedni bitta sayt uchun o'rnatish juda oson, lekin bir nechta saytlar birga mavjud bo'lganda qiziqarli bo'ladi. Nima uchun?

Odatiy bo'lib, Memcached barcha veb-saytlarning vaqtinchalik va obyekt keshlarini bitta hovuzga joylashtiradi. Tasavvur qiling-a, agar A va B veb-saytlari bir xil kesh kalitidan foydalansa — bu tartibsizlikka olib keladi. A ning ma'lumotlari to'g'ridan-to'g'ri B ning ustiga yoziladi va ikkala veb-sayt bir-birining ma'lumotlariga "aralasha" boshlaydi.

Men duch kelgan narsa bundan ham kulgiliroq edi, biriElektron tijoratVeb-saytning mahsulot tafsilotlari sahifasida boshqa blog saytidan olingan maqola mazmuni ko'rsatilayotgan edi. Men hayratda qoldim va o'zimdan: "Bu nima???" deb o'yladim.

Buni tushunish uchun bir kecha vaqt ketdi; bu kesh kaliti ziddiyati bo'lib chiqdi.

Shuning uchun bugun men o'zimning konfiguratsiya usulimni do'stlarimga ham xuddi shunday ehtiyojlar bilan yordam berishiga umid qilib baham ko'rmoqdaman. Men hali ham uni o'zim o'rganmoqdaman va ba'zi g'oyalarim to'liq ishlab chiqilmagan bo'lishi mumkin, ammo bu usul men uchun juda yaxshi ishladi.

Server muhitini tayyorlash

WordPressni sozlashni boshlashdan oldin, serverda Memcached xizmati va PHP Memcached kengaytmasi o'rnatilganligiga ishonch hosil qilishingiz kerak.

HestiaCP-da Memcached-ni qanday o'rnatish kerak?

Misol tariqasida Ubuntu ni olsak, u faqat uchta qator buyruqlarni o'z ichiga oladi.

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

O'rnatishdan so'ng, Memcached xizmati ishlayotganini tekshirishni unutmang.

sudo systemctl status memcached

Agar siz "faol (ishlamoqda)" ni ko'rsangiz, bu hech qanday muammo yo'qligini anglatadi.

Iltimos, paket nomlari turli tizimlarda farq qilishi mumkinligini unutmang. Ushbu buyruq odatda Debian tizimlarida ishlatiladi. Agar... CentOs Boshqa distributivlar uchun ularni o'rnatish uchun yum yoki dnf dan foydalanishingiz kerak bo'lishi mumkin.

Men o'sha paytda Ubuntu 20.04 dan foydalanayotgan edim va butun jarayon juda muammosiz o'tdi.

Asosiy operatsiya: Kesh prefiksini sozlash

Bu qadam butun konfiguratsiyaning ruhi va ma'lumotlar chalkashligini oldini olishning kalitidir.

Har bir WordPress veb-saytining asosiy katalogidagi wp-config.php fayliga noyob kesh prefiksini qo'shishingiz kerak.

Birinchi veb-saytning wp-config.php faylini oching va ushbu izohlar qatorini toping.

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

Ushbu sohada上方,Qo'shish

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

Keyin ikkinchi veb-saytda wp-config.php faylini oching va shunga o'xshash konfiguratsiyani qo'shing.

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

Sizga aytayapman, WP_CACHE_KEY_SALT dan keyingi satr... bo'lishi kerak.Mutlaqo noyobHa. Men sizga veb-sayt domen nomidan yoki uning qisqartmasidan, masalan, site1_com_ yoki site2_net_ dan to'g'ridan-to'g'ri foydalanishni maslahat beraman.

Men dangasa edim va raqamlardan foydalanardim, lekin uch oy o'tgach, qaysi raqam qaysi veb-saytga mos kelishini butunlay unutib qo'ydim va ularni birma-bir qidirishim kerak bo'ldi, bu esa haqiqiy bosh og'rig'i edi.

Bir o'ylab ko'ring: Memcached kesh kalitlari asosida ma'lumotlarni saqlash va olish orqali ishlaydi. Agar siz har bir veb-sayt uchun noyob prefiks o'rnatsangiz, ularning ma'lumotlari tabiiy ravishda izolyatsiya qilinadi va bir-biriga xalaqit bermaydi.

Bu har bir veb-saytga alohida shkaf berishga o'xshaydi. Ularning barchasi bir xonada bo'lsa-da, kalitlar har xil, shuning uchun ma'lumotlar chalkashib ketmaydi.

Obyektlarni keshlashni yoqish

Prefiksni sozlagandan so'ng, keyingi qadam WordPress-ga Memcached-dan foydalanishni yoqishdir.

Bu yerda ikkita variant bor va men ikkalasini ham sinab ko'rdim. Har birining o'z afzalliklari bor.

1-variant: Plagin usuli (eng muammosiz)

WordPress administrator paneliga kiring va Memcached-ni qo'llab-quvvatlaydigan keshlash plaginini o'rnating.

Tavsiya etilgan W3 Jami KeshBarqarorlik yaxshi. O'rnatishdan so'ng, plagin sozlamalarida kesh turi sifatida Memcached-ni tanlang, server manzili sifatida 127.0.0.1 ni kiriting va standart 11211 portini kiriting, so'ngra saqlang.

Agar siz toza yechimni xohlasangiz, uni to'g'ridan-to'g'ri o'rnatishingiz mumkin. Memcached obyekt keshi Ushbu plagin aynan shu maqsad uchun mo'ljallangan; unda boshqa hech qanday boshqa funksiyalar mavjud emas.

Rostini aytsam, dastlab plagin yondashuvi juda yaxshi deb o'ylagandim, chunki u qulay. Lekin keyinchalik ba'zi plaginlar menga kerak bo'lmagan bir qator funksiyalarga ega ekanligini aniqladim va men har doim yangilanishlar haqida xavotirdaman, ular to'satdan konfiguratsiyamni buzadigan biron bir funksiya qo'shib qo'yishidan qo'rqaman.

2-variant: object-cache.php faylini qo'lda joylashtiring (boshqarilishi osonroq)

Agar siz ham men kabi perfektsionist bo'lsangiz va juda ko'p plaginlarni o'rnatishni istamasangiz, ushbu yechimdan foydalanishingiz mumkin.

Rasmiy WordPress plagin omboridan yuklab oling. Memcached obyekt keshi Ushbu plagin yoki siz eng so'nggi object-cache.php faylini GitHub-da topishingiz mumkin. Keyin, ajratib olingan object-cache.php faylini FTP yoki SSH orqali har bir veb-saytning wp-content katalogiga yuklang.

E'tibor bering, bu plaginlar pastki katalogi emas, balki wp-contentning asosiy katalogi.

Uni qo'shganingizdan so'ng, WordPress keshni avtomatik ravishda taniydi va faollashtiradi. Hech narsani sozlashingiz shart emas, chunki u siz avval wp-config.php faylida o'rnatgan WP_CACHE_KEY_SALT faylini o'qiydi.

Men vaqtni tejashni xohlardim, shuning uchun men ushbu yechimdan asosan uni boshqarish mumkinligi sababli foydalandim. Agar muammo yuzaga kelsa, men yechimlarni qaerdan qidirishni bilaman va plaginlarning avtomatik yangilanishlari meni hayratda qoldirmaydi.

Konfiguratsiya samarali ekanligini tekshiring.

Namunani tayyorlashni tugatgandan so'ng, u muvaffaqiyatli bo'lganmi yoki yo'qligini bilishni xohlaysiz, to'g'rimi?

Eng oddiy usul - Memcached holatini tekshirish. Telnet yoki nc vositalari yordamida ulaning.

echo "stats" | nc 127.0.0.1 11211

Keyin siz bir nechta statistikani ko'rasiz. `cmd_set` va `get_hits` qiymatlariga alohida e'tibor bering va ular oshib borayotganini tekshirish uchun sahifani bir necha marta yangilang. Agar ular oshib borayotgan bo'lsa, bu kesh to'g'ri ishlayotganini anglatadi.

Buni tekshirishning yana bir intuitiv usuli - ikkala veb-saytni bir vaqtning o'zida ochish va ular bir-biriga xalaqit berishini tekshirish. Agar A veb-sayti B veb-saytidan tarkibni ko'rsatmasa, bu asosan prefiks ishlayotganini anglatadi.

O'sha paytda men yanada qat'iyroq sinov o'tkazdim. Ikki xil veb-saytga turli xil vaqtinchalik qiymatlarni o'rnatdim va keyin Memcached-dagi ma'lumotlarni to'g'ridan-to'g'ri so'rash uchun nc vositasidan foydalandim. Men haqiqatan ham turli prefikslarga ega ikkita kalit-qiymat juftligini ko'ra oldim, hech qanday chalkashliksiz.

O'sha paytda men haqiqatan ham buyuk bir narsaga erishgandek his qildim va bu haqda o'ylashning o'zi menga ajoyib his-tuyg'ularni bag'ishlaydi.

Xavfsizlik masalalarini e'tiborsiz qoldirmang

Barcha veb-saytlar bitta Memcached nusxasini ulashganligi sababli, siz bilishingiz kerak bo'lgan xavfsizlik xavfi mavjud.

Nazariy jihatdan, agar serverda boshqa foydalanuvchilar bo'lsa, ular keshlangan ma'lumotlaringizni mahalliy port orqali o'qishlari mumkin. Bu ma'lum darajadagi texnik tajribani talab qilsa-da, ehtiyot bo'lish har doim oqilona.

Shuning uchun, siz Memcached faylingiz to'g'ri ishlayotganiga ishonch hosil qilishingiz kerak. Hech qachon ommaviy IP manzillarini tinglamang.`/etc/memcached.conf` konfiguratsiya faylida ushbu qator mavjudligiga ishonch hosil qiling.

-l 127.0.0.1

Shu tarzda, Memcached faqat mahalliy loopback manzilini tinglaydi va tashqaridan kirish imkoni bo'lmaydi.

Agar sizda juda yuqori xavfsizlik talablari bo'lsa yoki serveringizda boshqa foydalanuvchilar uchun noqulay bo'lgan veb-saytlar mavjud bo'lsa, men sizga ... dan foydalanishni maslahat beraman. Redis Redis Memcached o'rnini bosuvchi sifatida ishlatilishi mumkin. U ko'p ma'lumotlar bazasini izolyatsiya qilish va parolni tekshirishni qo'llab-quvvatlaydi, bu esa sezilarli darajada yaxshiroq xavfsizlikni ta'minlaydi.

Biroq, Redisni sozlash Memcachedga qaraganda biroz murakkabroq. Agar siz uni faqat shaxsiy yoki kichik jamoaviy maqsadlar uchun ishlatayotgan bo'lsangiz, 127.0.0.1 tinglash chegarasi bilan Memcached asosan yetarli bo'ladi.

Ba'zi duch kelgan muammolar

Nihoyat, sizga ba'zi chalg'itishlardan qochishingizga yordam berish umidida duch kelgan bir nechta xatolarim bilan o'rtoqlashay.

PHP kengaytmasi versiyasi mos kelishi kerak.Ilgari men php-memcached kengaytmasini o'rnatgan vaziyatga duch kelganman, lekin WordPress uni tanimagan. Keyinchalik men bu PHP versiyasining mos kelmasligi tufayli ekanligini aniqladim. Noto'g'ri kengaytmani o'rnatmaslik uchun PHP versiyangizni diqqat bilan tekshirib ko'ring.

object-cache.php fayl yo'lini to'g'ri olganingizga ishonch hosil qiling.Uni plaginlar katalogiga emas, balki wp-contentning asosiy katalogiga joylashtirishga ishonch hosil qiling. Do'stim uni noto'g'ri joyga qo'ydi va uni tuzatishga uzoq vaqt urinib ko'rdi, ammo muvaffaqiyatsiz bo'ldi.

Kesh prefiksi uchun juda qisqa satr ishlatmang.Dastlab a_ yoki b_ dan foydalanganman, lekin keyinchalik ular juda qisqa ekanligini va WordPressning o'z kesh kalitlari bilan osongina to'qnashishini aniqladim. Siz hech bo'lmaganda yetti yoki sakkiz belgidan iborat tasodifiy satr yoki domen qisqartmasidan foydalanishingiz kerak.

Ikkala veb-sayt uchun ham keshni tozalashni unutmang.Bir marta, men faqat bitta veb-saytning keshini tozaladim, lekin boshqa veb-sayt hali ham eski ma'lumotlarni saqlab qoldi, bu esa ikkala veb-saytning mazmunining nomuvofiqligiga olib keldi. Muammoni aniqlash uchun ko'p vaqt kerak bo'ldi.

Rostini aytsam, bu tajribalar hamma uchun foydali bo'ladimi yoki yo'qmi, bilmayman, lekin ularni hech ikkilanmasdan baham ko'rdim.

Oxirida yozing

Memcached-ni bir nechta saytlar uchun sozlash texnik jihatdan murakkab emas; asosiy muammo kesh prefiksini sozlashdir. Biroq, shayton tafsilotlarda. Versiyalarni moslashtirish, fayl yo'llari va xavfsizlik konfiguratsiyalari bilan bog'liq muammolar sizga katta muammolar tug'dirishi mumkin.

Men bu usuldan deyarli bir yildan beri foydalanib kelmoqdaman, uchta WordPress saytini boshqaraman va hozircha hech qanday jiddiy muammolarga duch kelmadim. Agar siz ham shunga o'xshash ish qilayotgan bo'lsangiz, uni sinab ko'rishingiz mumkin.

Aytgancha, agar sizda yaxshiroq yechimlar bo'lsa yoki biron bir qiziqarli xatoga duch kelgan bo'lsangiz, izoh qoldirib, ularni baham ko'rishingiz mumkin. Sizdan o'rganishni juda xohlardim.

Axir, bu haqda qancha ko'p odam bilsa, tuzoqqa shuncha kam odam tushadi, to'g'rimi?

Siz shu yergacha o'qiganingiz uchun, agar foydali bo'lgan bo'lsa, iltimos, layk bosing va ulashing. Agar birinchi bo'lib yangiliklardan xabardor bo'lishni istasangiz, meni kuzatib borishingiz ham mumkin!

Maqolamni o'qiganingiz uchun tashakkur. Keyingi safar ko'rishguncha.

Umid qilamanki, Chen Veyliang blogi ( https://www.chenweiliang.com/ Bu yerda baham ko'rilgan "Memcachedni bir nechta WordPress veb-saytlari bilan bir xil serverda qanday ulashish mumkin? 100% xatoliklarning oldini olish uchun eng yaxshi konfiguratsiya qo'llanmasi" maqolasi siz uchun foydali bo'lishi mumkin.

Ushbu maqolaning havolasini baham ko'rish uchun xush kelibsiz:https://www.chenweiliang.com/cwl-34368.html

Ko'proq yashirin fokuslarni ochish uchun🔑 Telegram kanalimizga qo'shiling!

Baham ko'ring va yoqsa like! Sizning aktsiyalaringiz va yoqtirishlaringiz bizning doimiy motivatsiyasimizdir!

 

发表 评论

Sizning elektron pochta manzilingiz nashr etilmaydi. 必填 项 已 用 * Yorliq

Top o'ting