Nola partekatu Memcached hainbat WordPress webgunetan zerbitzari berean? %100ean akatsik gabeko konfigurazio gida osoa.

Zerbitzari bat hainbat exekutatzen ari daWordPressWebgunea, partekatuamemcachedHonek datuak gainidaztea edo diafonia arazoak sor ditzake?

Artikulu honek urratsez urratseko gida bat eskaintzen du, datu iragankorrak eta objektuen cache-ak gune ezberdinetan nola isolatu azaltzen duena, cache aurrizki bereizi bat (WP_CACHE_KEY_SALT) eta objektuen cache-gidoiak konfiguratuz.

% 100ean ezabatzen ditu datu-gatazkak, hainbat gunek aldi berean memoria-mailako azelerazio-esperientzia gorenaz gozatzeko aukera emanez, eta segurtasun-aholkuak barne hartzen ditu ekoizpen-inguruneetan akatsak saihesteko!

Duela egun batzuk, lagun batek bere zerbitzarian exekutatzen ari ziren hiru WordPress webguneei buruz galdetu zidan. Memcached konfiguratu nahi zuen abiadura handitzeko, baina datuak nahasiko ote ziren kezkatuta zegoen.

Une hartan barre egin nuen, ni neu tranpa horretan erori bainintzen.

Nola partekatu Memcached hainbat WordPress webgunetan zerbitzari berean? %100ean akatsik gabeko konfigurazio gida osoa.

Egia esan, Memcached izugarri erraza da gune bakar baterako konfiguratzen, baina interesgarria bihurtzen da hainbat gune elkarrekin bizi direnean. Zergatik?

Berez, Memcachedek webgune guztien iragankorreko eta objektuen cacheak multzo berean jartzen ditu. Imajinatu A eta B webguneek cache gako bera erabiltzen dutela: kaosa sortuko litzateke. A-ren datuek B-ren datuak zuzenean gainidatziko lituzkete, eta bi webguneek elkarren datuekin "interferentziak" egiten hasiko lirateke.

Topatu nuena are barregarriagoa izan zen, batElektrizitatea hornitzaileWebgunearen produktuaren xehetasunen orrialdeak beste blog bateko artikuluen edukia erakusten zuen. Harrituta geratu nintzen eta galdetu nion neure buruari: "Zer da hau???"

Gau osoa behar izan nuen ulertzeko; cache gako gatazka bat izan zen.

Beraz, gaur nire konfigurazio metodoa partekatzen ari naiz, behar berdinak dituzten lagunei lagun diezaiekeelakoan. Oraindik neuk ere aztertzen ari naiz, eta baliteke nire ideia batzuk ez egotea guztiz garatuta, baina metodo honek ondo funtzionatu dit.

Zerbitzariaren ingurunearen prestaketa

WordPress konfiguratzen hasi aurretik, ziurtatu zerbitzariak Memcached zerbitzua eta PHP Memcached luzapena instalatuta dituela.

Nola instalatu Memcached HestiaCP-en?

Ubuntu adibide gisa hartuta, hiru komando-lerro besterik ez ditu behar.

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

Instalatu ondoren, gogoratu Memcached zerbitzua martxan dagoen egiaztatzea.

sudo systemctl status memcached

"Aktibo (martxan)" ikusten baduzu, ez dago arazorik esan nahi du.

Kontuan izan paketeen izenak sistema ezberdinen artean alda daitezkeela. Komando hau normalean Debian sistemetan erabiltzen da. Baldin eta... CentOS Beste banaketa batzuetarako, baliteke yum edo dnf erabili behar izatea instalatzeko.

Garai hartan Ubuntu 20.04 erabiltzen ari nintzen, eta prozesu osoa nahiko ondo joan zen.

Funtzio nagusia: Konfiguratu cache aurrizkia

Urrats hau konfigurazio osoaren arima da eta datuen nahasketa saihesteko gakoa.

WordPress webgune bakoitzaren erro direktorioan dagoen wp-config.php fitxategiari cache aurrizki bakarra gehitu behar diozu.

Ireki lehenengo webgunearen wp-config.php fitxategia eta bilatu iruzkin lerro hau.

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

Industria honetan.上方Gehitu

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

Ondoren, ireki wp-config.php fitxategia bigarren webgunean eta gehitu antzeko konfigurazio bat.

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

Esaten ari naiz, WP_CACHE_KEY_SALT-en ondoren datorren katea izan behar dela...Erabat berezia.Bai. Webgunearen domeinu-izena edo haren laburdura zuzenean erabiltzea gomendatzen dizut, adibidez site1_com_ edo site2_net_.

Alferra nintzen eta zenbakiak erabiltzen nituen, baina hiru hilabete geroago erabat ahaztu zitzaidan zein zenbaki zegokion zein webguneri, eta banan-banan bilatu behar izan nituen, eta hori benetako buruhaustea izan zen.

Pentsa ezazu: Memcached-ek datuak cache gakoetan oinarrituta gordetzen eta berreskuratzen ditu. Webgune bakoitzerako aurrizki bakarra ezartzen baduzu, haien datuak modu naturalean isolatuta egongo dira eta ez dute elkarren artean interferentziarik egingo.

Webgune bakoitzari bere armairua ematea bezala da. Denak gela berean egon arren, giltzak desberdinak dira, beraz, datuak ez dira nahastuko.

Gaitu objektuen cachea

Aurrizkia konfiguratu ondoren, hurrengo urratsa WordPress-ek Memcached erabiltzeko gaitzea da.

Bi aukera daude hemen, eta biak probatu ditut. Bakoitzak bere abantailak ditu.

1. aukera: Plugin metodoa (arazorik gabekoena)

Hasi saioa WordPress administrazio panelean eta instalatu Memcached onartzen duen cache plugin bat.

Gomendatua W3 Guztira CacheEgonkortasuna ona da. Instalatu ondoren, pluginaren ezarpenetan, hautatu Memcached cache mota gisa, idatzi 127.0.0.1 zerbitzariaren helbide gisa eta sartu 11211 portu lehenetsia, eta gero gorde.

Soluzio puruagoa nahi baduzu, zuzenean instala dezakezu. Memcached objektuen katxea Plugin hau bereziki helburu horretarako diseinatuta dago; ez du beste funtziorik.

Egia esan, hasieran pluginen ikuspegia nahiko ona iruditu zitzaidan, erosoa delako. Baina geroago konturatu nintzen plugin batzuek behar ez ditudan funtzio mordoa dituztela, eta beti kezkatzen naiz eguneratzeekin, bat-batean nire konfigurazioa nahasiko duen funtzioren bat gehituko duten beldurrez.

2. aukera: Eskuz zabaldu object-cache.php (kontrolagarriagoa)

Nire moduko perfekzionista samarra bazara eta plugin gehiegi instalatu nahi ez badituzu, irtenbide hau erabil dezakezu.

Deskargatu WordPress pluginen biltegi ofizialetik. Memcached objektuen katxea Plugin hau, edo azken object-cache.php fitxategia GitHub-en aurki dezakezu. Ondoren, ateratako object-cache.php fitxategia webgune bakoitzaren wp-content direktoriora igo FTP edo SSH bidez.

Kontuan izan wp-content-en erro direktorioa dela, ez pluginen azpidirektorioa.

Gehitu ondoren, WordPress-ek automatikoki ezagutuko eta aktibatuko du cachea. Ez duzu ezer konfiguratu beharrik, lehenago wp-config.php-n ezarri duzun WP_CACHE_KEY_SALT irakurriko baitu.

Denbora aurreztu nahi nuen, beraz, irtenbide hau erabili nuen batez ere kontrolagarria delako. Arazoren bat sortzen bada, badakit non bilatu irtenbideak, eta ez naute pluginen eguneratze automatikoek harrituko.

Egiaztatu konfigurazioa eraginkorra dela.

Lagina prestatzen amaitu ondoren, ziur jakin nahi izango duzu ea arrakastatsua izan den, ezta?

Modurik errazena Memcached-en egoera egiaztatzea da. Konektatu telnet edo nc tresnak erabiliz.

echo "stats" | nc 127.0.0.1 11211

Ondoren, estatistika mordoa ikusiko duzu. Jarri arreta berezia `cmd_set` eta `get_hits` balioei, eta freskatu orria pare bat aldiz handitzen ari diren ikusteko. Hala bada, cachea behar bezala dabilela esan nahi du.

Hau egiaztatzeko beste modu intuitiboago bat bi webguneak aldi berean irekitzea da eta elkarren artean interferentziak dituzten ikustea. A webguneak B webguneko edukia erakusten ez badu, funtsean aurrizkia funtzionatzen ari dela esan nahi du.

Garai hartan proba zorrotzagoa egin nuen. Bi webgune ezberdinetan balio iragankor desberdinak ezarri nituen eta gero nc tresna erabili nuen Memcached-eko datuak zuzenean kontsultatzeko. Izan ere, bi gako-balio bikote ikus nitzakeen aurrizki desberdinekin, inolako nahasketarik gabe.

Une hartan, benetan sentitu nuen zerbait bikaina lortu nuela, eta horretan pentsatzeak ere izugarrizko sentsazioa ematen dit.

Ez alde batera utzi segurtasun arazoak

Webgune guztiek Memcached instantzia bakarra partekatzen dutenez, kontuan izan beharko zenukeen segurtasun arrisku bat dago.

Teorian, beste erabiltzaile batzuk zerbitzarian badaude, zure cachean gordetako datuak portu lokal baten bidez irakur ditzakete. Horrek ezagutza tekniko maila jakin bat eskatzen badu ere, beti komeni da kontuz ibiltzea.

Beraz, ziurtatu behar duzu zure Memcached behar bezala funtzionatzen duela. Ez entzun inoiz IP helbide publikoei.`/etc/memcached.conf` konfigurazio fitxategian, ziurtatu lerro hau dagoela.

-l 127.0.0.1

Horrela, Memcachedek tokiko loopback helbidea bakarrik entzungo du eta ez da kanpotik eskuragarri izango.

Segurtasun-eskakizun oso altuak badituzu, edo zure zerbitzariak beste erabiltzaile batzuek gustura ez dauden webguneak baditu, gomendatzen dizut erabiltzea kontuan hartzea... Birbanaketa Redis Memcached-en ordezko gisa erabil daiteke. Datu-base anitzeko isolamendua eta pasahitzaren egiaztapena onartzen ditu, segurtasun askoz hobea eskainiz.

Hala ere, Redis Memcached baino zertxobait konplexuagoa da konfiguratzeko. Norberaren edo talde txikien helburuetarako soilik erabiltzen baduzu, 127.0.0.1 entzuteko muga duen Memcached nahikoa da funtsean.

Topatutako zenbait oztopo

Azkenik, aurkitu ditudan zenbait oztopo partekatuko ditut, desbideratze batzuk saihesteko asmoz.

PHP luzapenaren bertsioa bateragarria izan behar da.Aurretik php-memcached luzapena instalatu nuen, baina WordPress-ek ez zuen ezagutzen. Geroago konturatu nintzen PHP bertsioaren desadostasun bat zela. Ziurtatu zure PHP bertsioa arretaz egiaztatzen duzula luzapenak instalatzerakoan, okerra instalatzea saihesteko.

Ziurtatu object-cache.php fitxategiaren bidea zuzena dela.Ziurtatu wp-content-en erro direktorioan jartzen duzula, ez pluginen direktorioan. Lagun batek leku okerrean jarri zuen eta denbora asko eman zuen konpontzen saiatzen, baina ez zuen lortu.

Ez erabili kate laburregia cache aurrizkiarentzat.Hasieran a_ edo b_ erabili nituen, baina geroago konturatu nintzen laburregiak zirela eta erraz talka egiten zutela WordPress-en cache-gakoekin. Gutxienez zazpi edo zortzi karaktereko ausazko kate bat edo domeinu-laburdura bat erabili beharko zenuke.

Gogoratu bi webguneen cachea garbitzea.Behin, webgune baten cachea bakarrik garbitu nuen, baina beste webguneak datu zaharrak mantentzen zituen oraindik, eta horrek bi webguneen edukia ez zegoela koherentea eragin zuen. Denbora asko behar izan nuen arazoa aurkitzeko.

Egia esan, ez dakit esperientzia hauek guztiontzat baliagarriak izango diren, baina erreserbarik gabe partekatu ditut.

Idatzi amaieran

Memcached hainbat gunetarako konfiguratzea ez da teknikoki konplikatua; arazo nagusia cache aurrizkia konfiguratzea da. Hala ere, xehetasunetan dago deabrua. Bertsioen parekatzearekin, fitxategien bideekin eta segurtasun konfigurazioekin lotutako arazoek arazo handiak sor ditzakete.

Ia urtebete daramat metodo hau erabiltzen, hiru WordPress gune kudeatzen, eta orain arte ez dut arazo handirik izan. Antzeko zerbait egiten ari bazara, probatu nahi izango duzu.

Bide batez, irtenbide hobeak badituzu edo arazo interesgarriren bat aurkitu baduzu, lasai utzi iruzkin bat eta partekatu. Gustura ikasiko nuke zuregandik.

Azken finean, zenbat eta jende gehiagok jakin honi buruz, orduan eta jende gutxiago eroriko da tranpan, ezta?

Honaino irakurri duzunez, lagungarria iruditu bazaizu, mesedez, eman "atsegin dut" botoia eta partekatu. Eguneraketak lehenago jaso nahi badituzu, jarrai nazazu!

Eskerrik asko nire artikulua irakurtzeagatik. Hurrengoan arte.

发表 评论

Zure helbide elektronikoa ez da argitaratuko. 必填 项 已 用 * 标注

Igo korrituko