Артицле Дирецтори
Један сервер који покреће вишеWordPressВеб-сајт, дељенМемцацхедДа ли би ово могло проузроковати проблеме са преписивањем података или преслушавањем?
Овај чланак пружа водич корак по корак о томе како савршено изоловати пролазне податке и податке кеша објеката на различитим сајтовима конфигурисањем посебног префикса кеша (WP_CACHE_KEY_SALT) и скрипти за кеш објеката.
100% елиминише сукобе података, омогућавајући вишеструким локацијама да истовремено уживају у врхунском искуству убрзања на нивоу меморије, и укључује безбедносне савете за спречавање грешака у производним окружењима!
Пре неколико дана, пријатељ ме је питао о своја три WordPress веб-сајта која раде на његовом серверу. Желео је да конфигурише Memcached да би их убрзао, али се бринуо да ће се подаци покварити.
Насмејао сам се у том тренутку јер сам и сам упао у ову замку.

Искрено, Memcached је невероватно лако подесити за један сајт, али постаје занимљиво када је у питању коегзистирање више сајтова. Зашто?
Подразумевано, Memcached ставља све пролазне и објектне кеш меморије веб локација у исти пул. Замислите да веб локације А и Б користе исти кључ кеша - то би изазвало хаос. Подаци веб локације А би директно преписали податке веб локације Б, и две веб локације би почеле да „мете“ међусобне податке.
Оно што сам наишао било је још смешније, једноЕ-трговинаСтраница са детаљима о производу на веб-сајту приказивала је садржај чланка са другог блога. Био сам запањен и питао сам се: „Шта је ово???“
Требала ми је цела ноћ да схватим; испоставило се да је у питању сукоб кључева кеша.
Дакле, данас делим свој метод конфигурације у нади да може помоћи пријатељима са истим потребама. Још увек га истражујем и неке од мојих идеја можда нису у потпуности развијене, али овај метод је код мене добро функционисао.
Припрема серверског окружења
Пре него што почнете са конфигурацијом WordPress-а, морате се уверити да сервер има инсталирану Memcached услугу и PHP Memcached екстензију.
Како инсталирати Мемцацхед у ХестиаЦП?
Узимајући Убунту као пример, он укључује само три линије команди.
sudo apt update
sudo apt install memcached php-memcached
sudo systemctl restart php8.x-fpm # 根据你的 PHP 版本改Након инсталације, не заборавите да проверите да ли је Memcached сервис покренут.
sudo systemctl status memcachedАко видите „активно (покреће се)“, то значи да нема проблема.
Имајте у виду да се називи пакета могу разликовати на различитим системима. Ова команда се генерално користи на Дебијан системима. Ако... Убунту За остале дистрибуције, можда ћете морати да користите 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.
Препоручено ВКСНУМКС Укупно кешСтабилност је добра. Након инсталације, у подешавањима додатка, изаберите Memcached као тип кеша, унесите 127.0.0.1 као адресу сервера и унесите подразумевани порт 11211, а затим сачувајте.
Ако желите чистије решење, можете га директно инсталирати. Кеш меморија објеката Овај додатак је посебно дизајниран за ову сврху; нема никакве друге разне функције.
Да будем искрен, у почетку сам мислио да је приступ са додацима прилично добар, јер је практичан. Али касније сам открио да неки додаци долазе са гомилом функција које ми нису потребне, и увек сам забринут због ажурирања, плашећи се да ће изненада додати неку функцију која ће ми покварити конфигурацију.
Опција 2: Ручно распоређивање object-cache.php (лакше за контролу)
Ако сте помало перфекциониста као ја и не желите да инсталирате превише додатака, можете користити ово решење.
Преузмите са званичног репозиторијума додатака за WordPress. Кеш меморија објеката Овај додатак, или можете пронаћи најновију датотеку 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 алате.
echo "stats" | nc 127.0.0.1 11211Затим ћете видети гомилу статистике. Обратите посебну пажњу на вредности `cmd_set` и `get_hits` и освежите страницу неколико пута да видите да ли се повећавају. Ако се повећавају, то значи да кеш исправно ради.
Још један интуитивнији начин да се ово провери јесте да се обе веб странице отворе истовремено и види да ли се међусобно ометају. Ако веб страница А не приказује садржај са веб странице Б, то у основи значи да префикс ради.
У то време сам урадио још ригорознији тест. Поставио сам различите пролазне вредности на две различите веб странице, а затим сам користио алатку nc да директно упитам податке у Memcached-у. Заиста сам могао да видим два пара кључ-вредност са различитим префиксима, без икакве забуне.
У том тренутку, заиста сам се осећао као да сам постигао нешто велико, и сама помисао на то ме чини сјајним.
Не занемарујте безбедносне проблеме
Пошто све веб странице деле једну Memcached инстанцу, постоји безбедносни ризик кога би требало да будете свесни.
Теоретски, ако су други корисници на серверу, могли би да читају ваше кеширане податке преко локалног порта. Иако ово захтева одређени ниво техничке стручности, увек је паметно бити опрезан.
Стога морате осигурати да ваш Memcached исправно ради. Никада не слушајте јавне ИП адресе.У конфигурационом фајлу `/etc/memcached.conf`, уверите се да је ова линија присутна.
-l 127.0.0.1На овај начин, Memcached ће само слушати локалну адресу повратне петље и неће бити доступан споља.
Ако имате изузетно високе безбедносне захтеве или ако ваш сервер хостује веб странице са којима се други корисници не осећају пријатно, предлажем да размислите о коришћењу... Редис 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 сајта и до сада нисам наишао ни на један већи проблем. Ако радите нешто слично, можда бисте желели да је испробате.
Успут, ако имате нека боља решења или сте наишли на неке занимљиве замке, слободно оставите коментар и поделите их. Волео бих да учим од вас.
На крају крајева, што више људи зна о овоме, мање људи ће упасти у замку, зар не?
Пошто сте прочитали до сада, ако вам је било од помоћи, лајкујте и поделите. Ако желите први да примате новости, можете ме и пратити!
Хвала вам што сте прочитали мој чланак. Видимо се следећи пут.
Блог Хопе Цхен Веилианг ( https://www.chenweiliang.com/ Чланак „Како делити Memcached са више WordPress веб локација на истом серверу? Врхунски водич за конфигурацију за спречавање 100% грешака“ подељен овде може вам бити од помоћи.
Добродошли да поделите везу овог чланка:https://www.chenweiliang.com/cwl-34368.html
