Нийтлэлийн лавлах
Би хэд хэдэн үйл ажиллагаа явуулдагWordPressТус вэбсайт 502 алдаанаас болж нэг өдрийн дотор 800 гаруй хандалт алдсан. Гурван өдрийн турш шалгасны эцэст буруутан нь арын хэсэгт байгаа анзаарагдахгүй тохиргоо болохыг тогтоожээ.
WordPress вэбсайт ажиллуулдаг хэн бүхэн хамгийн бухимдал төрүүлдэг зүйл бол хандалтын хомсдол биш, харин вэбсайт гэнэт хандах боломжгүй болж, дэлгэц дээр 500, 502, 503, 504 гэх мэт алдаанууд гарч ирэх явдал гэдгийг мэддэг.
Та сервер гацчихсан гэж бодоод хостинг үйлчилгээ үзүүлэгчтэй маргалдах гэж яарсан боловч тэд сервер хэвийн ажиллаж байгааг шалгасны дараа мэдсэн.
Та үүнийг залгаасуудын зөрчил гэж бодож магадгүй тул нэг нэгээр нь идэвхгүй болгож, алдааг олж засварлаж, өдрийн ихэнх цагийг үүн дээр өнгөрөөдөг боловч алдаа давтагдсаар байна.
Үнэндээ энэ нь тийм ч төвөгтэй байх албагүй. Тоолж баршгүй олон урхинд орсны дараа би WP вэбсайтын 5xx алдааны 80% нь эдгээр 4 буруутнаас мултарч чадахгүй гэдгийг олж мэдсэн. Тэд тус бүр нь сайн нуугдсан байдаг ч таны вэбсайтыг амархан сүйтгэж болзошгүй.
Одоо би өөрийн практик туршлагаа ашиглан эдгээр алдаануудыг тодорхой харуулах болно, ингэснээр эхлэн суралцагчид ч гэсэн дагаж мөрдөж, алдааг олж засварлах боломжтой бөгөөд та дахин хэзээ ч алдаандаа дарагдахгүй болно.

Буруутан #1: WP-CRON идэвхгүй болоогүй, үндсэндээ вэбсайт дээр "далд цахилгаан хангамжийн суваг" суулгасан.
WordPress нь анхдагчаар идэвхжүүлсэн WP-CRON гэж нэрлэгддэг хуваарьт даалгаврын функцтэй гэдгийг олон хүн мэддэггүй.
Үүний функцууд нь нийтлэл нийтлэх хуваарь гаргах, автоматаар нөөцлөх, залгаасуудын шинэчлэлтийг шалгах, тэр ч байтугай гишүүдийн сануулга илгээх гэх мэт маш практик сонсогдож байна.
Гэхдээ энэ хэрэгтэй мэт санагдах функц нь серверүүдийг гацааж, 5xx алдаа үүсгэдэг гол буруутан гэдгийг та мэдэх үү?
WP-CRON нь серверийн уугуул Cron-оос өөр юм. Энэ нь урьдчилан ажилладаггүй боловч хэрэглэгчийн зочлолтоор идэвхждэг. Хэрэглэгч таны вэбсайтад зочлох бүрт хийхээр төлөвлөсөн ажлууд байгаа эсэхийг шалгахын тулд /wp-cron.php файлыг нууцаар ажиллуулдаг.
Энэ нь таны вэбсайтад зочилсон хүн бүр "нэмэлт ачаалал" нэмж, олон зочинтой байх тусам ачаалал улам хүндэрдэг гэсэн үг юм.
Би өдөрт мянга гаруй зочин хүлээн авдаг вэбсайттай байсан. WP-CRON идэвхгүй болоогүй үед серверийн CPU хэрэглээ ихэвчлэн 80%-иас дээш болж огцом өсдөг байсан бөгөөд өдөр бүр дор хаяж хоёр 503 алдаа гарч, зочдыг дармагц алдааны хуудас руу чиглүүлдэг байв.
Бүр дор нь, хэрэв та ямар ч хуваарьт даалгавар тохируулаагүй байсан ч WP-CRON автоматаар ажиллаж, серверийн нөөцийг дахин дахин хүсэх болно. Цаг хугацаа өнгөрөхөд сервер ачааллыг зохицуулж чадахгүй бөгөөд алдаа мэдээлэх болно.
GitHub баримт бичигт тодорхой заасан байдаг: "Гэнэтийн HTTP хариу код: 500 буюу түүнээс дээш, энэ нь таны сервер дээр cron үүсгэгчийг ажиллуулахад саад болж буй алдаа гарсан гэсэн үг юм." Энэ нь WP-CRON зөв ажиллахгүй бол 500 буюу түүнээс дээш серверийн алдаа үүсгэнэ гэсэн үг юм.
Зөв арга бол анхдагч WP-CRON-г идэвхгүй болгож, оронд нь серверийн төрөлхийн хуваарьт даалгавруудыг ашиглах явдал юм. Энэ нь хуваарьт даалгаврууд хэвийн ажиллаж, серверийн ачааллыг бууруулах болно.
Хэрэв таны сервер curl командыг дэмждэг бол та иймэрхүү хуваарьт даалгаврыг шууд нэмж болно (вэбсайтынхаа домэйны дагуу өөрчлөх):
*/15 * * * * curl https://www. 你的域名/wp-cron.php?doing_wp_cron > /dev/null 2>&1Энэ тушаал нь ихэнх жижиг, дунд хэмжээний вэбсайтуудад тохиромжтой, 15 минут тутамд WP-CRON даалгаврыг гүйцэтгэдэг; хэрэв таны вэбсайт байнга төлөвлөсөн даалгавартай бол та үүнийг ашиглаж болно:
*/5 * * * * curl https://www. 你的域名/wp-cron.php?doing_wp_cron > /dev/null 2>&1WP-CRON-г идэвхгүй болгож, сервер дээр хуваарьт ажлуудыг тохируулсны дараа серверийн CPU-ийн хэрэглээ 30%-иас доош буурч, бүтэн сарын турш 503 алдаа гараагүй. Зочдыг хадгалах түвшин мөн 18%-иар өссөн.
Хоёрдугаар буруутан: CRON-д хуваарьт даалгавруудыг давтан хийх болон залгаасыг устгасны дараа үлдэгдэл файлууд нь вэбсайт дээр үндсэндээ "хог хаягдал" үлдээж байна.
WP-CRON асуудлыг шийднэ гэдэг нь та тайван байж болно гэсэн үг биш; олон вэбсайт эзэмшигчдийн анзаардаггүй далд нэг аюул бий.
Энэ нь CRON-н хуваарьт ажлууд давтан ажиллаж байгаа эсвэл залгаасыг устгасны дараа үлдсэн хуваарьт ажлууд нууцаар ажиллаж байгаа гэсэн үг юм.
Та ийм зүйлтэй тулгарч байсан уу: та нөөцлөлтийн залгаасыг устгасан боловч сервер өдөр бүр автоматаар нөөцлөлт хийдэг эсвэл нөөцлөлтийн алдааны мессежийг харуулдаг бөгөөд энэ нь эцэстээ 500 алдаа гаргадаг болохыг олж мэдсэн үү?
Энэ нь залгаасаас үлдсэн хуваарьт ажлуудаас үүдэлтэй юм.
Жишээлбэл, хэрэв залгаас өдөр тутмын хуваарьт даалгавар үүсгэдэг бол WordPress залгаасыг устгасны дараа ч энэ даалгаврыг үргэлжлүүлэн гүйцэтгэх болно. Ийм хуваарьт даалгаварууд утгагүй болно. Эдгээр утгагүй үлдэгдэл даалгаварууд нь серверийн нөөцийг тасралтгүй ашиглаж, эцэст нь алдаа гаргахад хүргэдэг.
Бүр дор нь зарим нэмэлтүүд автоматаар олон давтагдах хуваарьт даалгавруудыг үүсгэдэг. Жишээлбэл, "өдөр бүр шинэчлэлт шалгах" даалгаврыг таван удаа үүсгэж болох бөгөөд тус бүрийг хуваарийн дагуу гүйцэтгэнэ, өөрөөр хэлбэл сервер таван ижил даалгаврыг нэгэн зэрэг боловсруулах шаардлагатай болно.
Би өмнө нь нэгийг суулгасан.SEOЗалгаасыг устгасны дараа би үүнийг анзаараагүй бөгөөд хагас сарын дараа вэбсайт 504 хугацааны алдаатай байнга тулгардаг болсон. Серверийн бүртгэлийг шалгасны дараа л залгаас өдөр бүр 12 секунд хүртэл гүйцэтгэх хугацаатай гурван хуваарьт ажлыг орхигдуулсан болохыг олж мэдсэн. Гурвууланг нь нэгэн зэрэг ажиллуулснаар серверийн хариу үйлдэл үзүүлэх хугацаа шууд дууссан.
Бүр аймшигтай нь эдгээр үлдэгдэл, давтагдсан цаг хугацаатай ажлууд...WordPress backendЭнэ нь үл үзэгдэх; та үүнийг нууцаар ажиллаж байгааг мэдэхгүй.
Гэсэн хэдий ч шийдэл бий: WP-Crontrol залгаас үүнийг төгс зохицуулж чадна. Энэ бол WordPress-ийн санал болгосон албан ёсны Cron даалгаврын удирдлагын хэрэгсэл бөгөөд танд бүх төлөвлөсөн даалгавруудыг backend дээр шууд харах, засах, устгах боломжийг олгодог.
WordPress залгаасын тайлбарт дурдсанаар, WP-Crontrol нь "бүх төлөвлөсөн cron үйл явдлуудыг харах, засах, устгах, түр зогсоох, үргэлжлүүлэх, мөн cron үйл явдлуудыг шууд ажиллуулах" боломжтой. Өөрөөр хэлбэл, энэ нь төлөвлөсөн бүх даалгавруудыг харах, давхардсан эсвэл хүчингүй даалгавруудыг устгах боломжтой. Үүнийг ашиглахад маш хялбар бөгөөд нэг мөр код бичих шаардлагагүй.
Энэ залгаасыг ашиглан алдааг олж засварласны дараа би 8 давхардсан даалгавар болон 5 залгаасны үлдэгдэл даалгаврыг устгасан бөгөөд вэбсайтын хариу өгөх хурд 40%-иар шууд сайжирсан. 504 алдаа дахин хэзээ ч гарч ирээгүй.
Анхааруулга: даалгавруудыг устгахдаа сайтар шалгаж, "wp_version_check" (хувилбар шалгах) гэх мэт WordPress-ийн гол төлөвлөсөн даалгавруудыг санамсаргүйгээр устгахаас зайлсхий. Санамсаргүйгээр устгаснаар вэбсайт зөв шинэчлэгдэхгүй байж болзошгүй.
WP-Crontrol залгаас нь давхардсан эсвэл хүчингүй даалгавруудыг гараар устгах боломжтой боловч гарын авлагын оролцоо шаарддаг бөгөөд энэ нь тийм ч тохиромжтой биш юм...
Гэсэн хэдий ч бид энэ үйл явцыг WordPress кодыг ашиглан автоматжуулж чадна. Дэлгэрэнгүй мэдээллийг доорх заавраас үзнэ үү. ▼
Буруутан #3: WordPress дээрх илүүдэл мэдээллийн сангууд
WordPress дээр дараах байдал гарч ирнэ 500 алдаа Үүний нэг шалтгаан нь мэдээллийн сангийн нөөцлөлт, ялангуяа тодорхой залгаасуудын үүсгэсэн том багтаамжтай өгөгдлийн хүснэгтүүд юм.
WP оновчлолын залгаасыг ашиглах үед зарим өгөгдлийн хүснэгтүүд хэмжээ нь хэвийн бус том байгааг олж мэдсэн бөгөөд үүнд... Wordfence тохиргооны хүснэгт (wfconfig) Ялангуяа онцгой.
Асуудлын шинжилгээ
- wfconfig нь өгөгдлийн хүснэгтийн ноцтой давхардалтай байна.Өмнө нь нэг удаа цэвэрлэж байсан ч маш хурдан дахин гарч ирсэн.
- Анхдагч хадгалах системийн асуудлуудWordfence тохиргооны хүснэгт нь анхдагч InnoDB хөдөлгүүрийг ашигладаг бөгөөд энэ нь цаг хугацааны явцад хэдэн зуун MB илүүдэл өгөгдөл хуримтлуулах болно.
- Гүйцэтгэлд үзүүлэх нөлөөӨгөгдлийн хүснэгтүүд хэдэн зуун MB хэмжээтэй амархан хүрч чаддаг бөгөөд энэ нь вэбсайтын ачаалах хурдыг бууруулж, тэр ч байтугай 500 алдаа гаргахад хүргэдэг.
Шийдэл
Учир нь Wordfence-ээр тохируулсан өгөгдлийн хүснэгтүүд нь анхдагч Inno хөдөлгүүрийг ашигладаг. Цаг хугацаа өнгөрөхөд энэ нь хэдэн зуун мегабайт илүүдэл өгөгдөл болж хурдан хуримтлагдаж, вэбсайтын ачаалах хурданд нөлөөлдөг.
HestiaCPMariaDB-ийн анхдагч хадгалах хөдөлгүүрийг MyISAM болгон өөрчлөх зааврыг дараах заавраас үзнэ үү.
Дөрөв дэх буруутан: Залгаас/сэдэв шинэчлэгдсэний дараах алдаанууд нь вэбсайт дээр "ер бусын мэс засал" хийхтэй адил юм.
Олон вэбсайт эзэмшигчид залгаас эсвэл сэдвүүдийн шинэчлэлтийн хүсэлтийг хараад "шинэчлэх" товчийг шууд дардаг зуршилтай байдаг бөгөөд шинэчлэлтүүд нь эмзэг байдлыг засаж, гүйцэтгэлийг сайжруулна гэж итгэдэг.
Гэхдээ үнэндээ эсрэгээрээ; олон 5xx алдаа нь залгаасууд эсвэл сэдвүүдийг шинэчлэхээс үүдэлтэй байдаг.
Би энэ асуудалтай өмнө нь тулгарч байсан. Өнгөрсөн сард би вэбсайтаа алдартай хуудас бүтээгч залгаасаар шинэчилсэн. Шинэчлэх товчийг дарсны дараа хуудас хоосон болж, шинэчлэсний дараа 500 Дотоод Серверийн Алдаа гарч ирснээр backend-д хандах боломжгүй болсон.
Би хожим нь залгаасын шинэ хувилбар нь миний вэбсайтын PHP хувилбартай нийцэхгүй байгааг олж мэдсэн. Залгаасыг шинэчилсний дараа код зөв ажиллаж чадахгүй байсан нь серверт алдаа мэдээлэхэд хүргэсэн.
Залгаас эсвэл сэдвийг шинэчилсний дараах алдаа нь WordPress 500 алдааны нийтлэг шалтгаан болдог, ялангуяа залгаасын шинэ хувилбар нь кодын эмзэг байдалтай эсвэл вэбсайт дээрх бусад залгаас эсвэл сэдвүүдтэй зөрчилдөх үед.
Өөр нэг хувилбар бол сэдэв шинэчлэгдсэний дараа өмнөх өөрчлөн тохируулсан кодыг дарж бичих бөгөөд энэ нь вэбсайтын зохион байгуулалт эмх замбараагүй болж, функцууд ажиллахаа больж, улмаар 502 болон 503 алдаа гарахад хүргэдэг.
хийх хэрэгтэйЦахим худалдааЗарим хэрэглэгчдийн хувьд WooCommerce залгаасыг шинэчилсний дараа тэдний вэбсайтууд 502 алдаатай тулгарч, захиалга өгөх боломжгүй болсон. Үүний үр дүнд ердөө 3 цагийн дотор 2000 гаруй борлуулалт алдагдсан бөгөөд асуудлыг шийдвэрлэхэд бүтэн үдээс хойш хугацаа зарцуулагдсан.
Үнэндээ энэ нөхцөл байдлаас гарах хамгийн шууд бөгөөд үр дүнтэй шийдэл бол зөв ажиллаж байсан өмнөх хувилбар руу буцах явдал юм.
Олон хүн хэрхэн буцаахыг мэддэггүй ч та файлуудыг гараар татаж авах эсвэл байршуулах шаардлагагүй; WP Rollback залгаас үүнийг хялбар болгодог.
WordPress-ийн тайлбарын дагуу WP Rollback залгаас нь "wordpress.org сайтаас ямар ч сэдэв эсвэл залгаасыг ямар ч гарын авлагын асуудалгүйгээр өмнөх (эсвэл шинэ) хувилбар руу хурдан бөгөөд хялбархан буцаах боломжтой." Өөрөөр хэлбэл, энэ нь залгаасууд эсвэл сэдвүүдийг нэг товшилтоор, нарийн төвөгтэй үйлдлүүдгүйгээр өмнөх хувилбар руу буцаах боломжтой бөгөөд энэ нь анхан шатны хүмүүст ашиглахад хялбар болгодог.
Миний сүүлийн залгаас шинэчлэлт амжилтгүй болсны дараа би WP Rollback ашиглан нэг товшилтоор өмнөх хувилбар руугаа буцсан. Вэбсайт ердөө 30 секундын дотор хэвийн байдалдаа орсон бөгөөд ямар ч өгөгдөл алдагдаагүй.
Энд нэг санал байна: залгаасууд эсвэл сэдвүүдийг шинэчлэхээсээ өмнө вэбсайтаа үргэлж нөөцөлж байгаарай. Алдаа гарахаас зайлсхийхийн тулд албан ёсны вэбсайт дээр шинэчлэхээсээ өмнө ямар ч асуудал гарахгүй байхын тулд эхлээд туршилтын орчинд туршиж үзэх нь хамгийн сайн арга юм.
Дүгнэлт: WP вэбсайтын 5xx алдаанаас бүрэн салах ёс гүйцэтгэхийн тулд эдгээр 3 зүйлийг эзэмш.
WordPress вэбсайт ажиллуулахад 500, 502, 503, 504 алдаанууд нь "саад бэрхшээл" мэт санагдаж байгаа ч үндсэн шалтгаан нь үнэндээ нэлээд тодорхой байна - сервер буруу байгаа юм биш, вэбсайтын програмд томоохон асуудал байхгүй, харин бид гурван нарийн ширийн зүйлийг орхигдуулсан явдал юм: WP-CRON, хуваарьт үлдсэн даалгаварууд, залгаас/сэдвийн шинэчлэлтүүд.
WordPress вэбсайтын эзэмшигчийн хувьд эхэндээ алдаануудад дарагдаж байсан бол одоо 5xx алдааг хурдан олж засварлаж, шийдвэрлэх боломжтой болсон тул миний хамгийн том дүгнэлт бол вэбсайтын тогтвортой ажиллагаа нь "морь гүйсний дараа жүчээний хаалгыг түгжих"-ээс бус, харин "эмчлэхээс урьдчилан сэргийлэх нь дээр" гэсэн зарчим дээр суурилдаг явдал юм.
Олон вэбсайт эзэмшигчид эдгээр жижиг нарийн ширийн зүйлийг чухал биш гэж боддог бөгөөд вэбсайт доголдолтой, хандалт тасарч, орлогоо алдах үед л урьдчилан шалгаагүйдээ харамсдаг.
Вэбсайтын хувьд "тогтвортой байдал" нь өрсөлдөөний гол давуу тал гэдгийг ойлгох нь чухал юм. Ганц 5xx алдаа нь таны зочдын 10%-ийг алдахад хүргэж болзошгүй бөгөөд олон алдаа нь хайлтын системийн зэрэглэлийг бууруулж, өмнөх бүх SEO хүчин чармайлтыг тань үр ашиггүй болгож болзошгүй юм.
"Мянган милийн даланг шоргоолжны нүх нэвтэлж болно" гэдэг үг байдаг. WP вэбсайт 5xx алдаа хэзээ ч гэнэт гарч ирдэггүй, харин идэвхгүй болгосон WP-CRON, хуваарьт үлдсэн ажлууд, яаруу шинэчлэлтийн үйлдлүүд гэх мэт жижиг асуудлууд хуримтлагдсанаас үүдэлтэй байдаг. Эдгээр ач холбогдолгүй мэт санагдах "шоргоолжны нүхнүүд" эцэстээ вэбсайтын бүхэл бүтэн "далан"-ыг устгах болно.
Үнэхээр үр ашигтай үйл ажиллагаа гэдэг нь асуудлуудыг эхнээс нь арилгах гэсэн үг юм.
- Анхдагч WP-CRON-г идэвхгүй болгож, сервер дээр суурилсан хуваарьт даалгавраар солино уу;
- Давтагдсан болон үлдэгдэл төлөвлөсөн ажлуудыг цэвэрлэхийн тулд WP-Crontrol-г тогтмол ашиглаарай;
- Нэмэлт өргөтгөлүүд эсвэл сэдвүүдийг шинэчлэхээсээ өмнө өгөгдлөө нөөцөлж, алдаа гарсан тохиолдолд нэн даруй буцаан суулгаарай.
Эдгээр гурван үйлдэл нь нарийн төвөгтэй технологи эсвэл үнэтэй хөгжүүлэгчдийг шаарддаггүй бөгөөд анхан шатны хүмүүс ч гэсэн тэдгээрийг амархан эзэмшиж чаддаг ч таны вэбсайтыг 5xx алдаанаас хол байлгаж, тогтвортой ажиллагааг хангаж чадна.
Таны вэбсайтын тогтвортой ачаалал болон зочин бүрийн байршил нь цаг хугацааны явцад хуримтлуулсан үнэ цэнэтэй хөрөнгө юм.
Одооноос эхлэн эдгээр гурван буруутныг тодорхойлж, WordPress вэбсайт тань зөвхөн таны шаргуу хөдөлмөрийг даахаас гадна хандалт болон орлогыг тогтмол нэмэгдүүлэхийн тулд өдөр тутмын засвар үйлчилгээ хий.
Хэрэв та одоогоор 5xx алдаанаас болж зовж байгаа бол энэ нийтлэл дэх алхмуудыг дагаж алдааг олж засварлаарай. Удахгүй та эдгээр асуудлаас ангижирч, вэбсайтаа тогтвортой ажиллуулж, урт хугацааны өсөлтөд хүрч чадна гэдэгт би итгэж байна.
Hope Chen Weiliang блог ( https://www.chenweiliang.com/ ) 分享的《WORDPRESS网站500、502、503、504错误的4大罪魁祸首》,对您有帮助。
Энэ нийтлэлийн холбоосыг хуваалцахад тавтай морилно уу:https://www.chenweiliang.com/cwl-33968.html


