Танд яагаад сервер хэрэгтэй вэ, ямар төрлийн серверүүд байдаг. Сервертэй ажиллах энгийн бус тохиолдлууд Серверийн үйл ажиллагааны зарчим юу вэ

Туслаач 02.04.2021
Туслаач

Хэрэв та өдөр бүр сүлжээнд холбогдсон компьютер ашигладаг бол таны гар утасны хэрэгсэл мөн интернетэд холбогдсон бол хэрэглэгч бүр "сервер" гэсэн үгтэй үе үе тааралддаг. Түүнээс гадна, энэ үг өөр өөр хослолоор гарч ирж болох бөгөөд хэрэглэгч бүр юу хэлж байгааг ойлгодоггүй. "Сервер" гэдэг үгийн ард юу нуугдаж байгаа бөгөөд энэ нь хэрэглэгчдэд яагаад хэрэгтэй вэ?

"Сервер" гэсэн нэр томъёо нь техник хангамжийн төхөөрөмж, түүнд зориулсан програм хангамж (техник хангамж ба виртуал) гэсэн утгатай байж болно. Техник хангамжийн сервер нь тусдаа компьютер юм. Энэ нь бусад компьютер, албан тасалгааны тоног төхөөрөмжийн ажиллагааг хангахад шаардлагатай. Виртуал сервер нь програм хангамж юм. Энэ тохиолдолд тодорхой сервер нь эдгээр хоёр төрлийг нэгтгэдэг.

Хамгийн түрүүнд санах ёстой зүйл бол түүний үүрэг бол сүлжээг удирдах биш харин сүлжээ, хэрэглэгчдийг хадгалах явдал юм. Хэрэглэгчид өөрсдөө серверт даалгавар өгдөг бөгөөд энэ нь тэдгээрийг хурдан шийддэг. HP сервер гэх мэт сервер хэдий чинээ сайн байна төдий чинээ үүргээ сайн гүйцэтгэдэг.

Энэ бүх төхөөрөмжийг нэг сүлжээнд нэгтгэхгүйгээр маш олон электрон төхөөрөмж суурилуулсан томоохон компаниудын ажлыг төсөөлөхөд бэрх. Байгууллагын сервер нь оффисын тоног төхөөрөмжийг алсаас хянах боломжийг олгодог бөгөөд компьютерууд хоорондоо харилцах боломжийг олгодог.

Серверийн доголдол эсвэл доголдол нь сүйрэлд хүргэж болзошгүй

Аж ахуйн нэгжүүдэд серверүүд нь бүх хэлтсийн ажлыг оновчтой болгох боломжийг олгодог. Гэхдээ бид өдөр тутмын амьдралдаа серверийн ажилтай байнга тулгардаг. Тодруулбал, касс, банкны теллерүүд серверээр бичиг баримт хэвлэж, төлбөр тооцоо хийдэг. Сервер нь бүх шуудан, нийгмийн сүлжээ, харилцааны менежерүүдийг дэмждэг.

Сервер нь интернетэд нэвтрэх боломжийг олгодог. Бүх сайтууд сервер дээр хадгалагддаг. Энэ нь хуваалцсан хостинг олгодог. Энэ үйлчилгээг хостинг компаниуд үзүүлдэг.

Вэб сервер гэж юу вэ? Энгийн хүний ​​үүднээс авч үзвэл энэ нь хөтчийн хүсэлтийг боловсруулж, хариуд нь вэб хуудас үүсгэдэг нэг төрлийн хар хайрцаг юм. Техникч таныг маш олон ойлгомжгүй нэр томъёогоор бөмбөгдөх болно. Үүний үр дүнд вэб серверийн шинэхэн администраторуудад олон төрлийн нэр томъёо, технологийг ойлгоход заримдаа хэцүү байдаг. Үнэн хэрэгтээ вэб хөгжүүлэлтийн салбар динамикаар хөгжиж байгаа боловч орчин үеийн олон шийдлүүд нь үндсэн технологи, зарчмууд дээр суурилдаг бөгөөд өнөөдөр бидний ярих болно.

Хэрэв та хаанаас эхлэхээ мэдэхгүй байгаа бол шинээр эхлэх хэрэгтэй. Орчин үеийн олон төрлийн вэб технологид андуурахгүйн тулд орчин үеийн интернет хаанаас эхэлсэн, технологи хэрхэн хөгжиж, сайжирч байгааг ойлгохын тулд түүх рүү хандах хэрэгтэй.

HTTP сервер

Интернетийг хөгжүүлэх эхэн үед сайтууд нь тусгайлан тэмдэглэсэн баримт бичиг, зарим холбогдох өгөгдлүүдийн энгийн агуулах байсан: файл, зураг гэх мэт. Баримт бичгүүд хоорондоо болон холбогдох өгөгдөлтэй холбогдох боломжтой байхын тулд тусгай гипертекст тэмдэглэгээний хэл болох HTML-ийг санал болгосон бөгөөд HTTP протоколыг интернетээр дамжуулан ийм баримт бичигт хандахыг санал болгосон. Хөгжиж, боловсронгуй болж буй хэл, протокол хоёулаа мэдэгдэхүйц өөрчлөлтгүйгээр өнөөг хүртэл хадгалагдан үлджээ. 1999 онд батлагдсан HTTP/1.1 протоколыг дөнгөж сольж эхэлж байгаа HTTP/2 протокол нь орчин үеийн сүлжээний шаардлагыг харгалзан үндсэн өөрчлөлтүүдийг авчирсан.

HTTP протокол нь үйлчлүүлэгч-серверийн технологийг ашиглан хэрэгждэг бөгөөд харьяалалгүй хүсэлт-хариу зарчмаар ажилладаг. Хүсэлтийн зорилго нь тодорхой нөөц бөгөөд үүнийг тодорхойлсон байдаг нэг нөөцийн тодорхойлогч - URI (Нөөцийн нэгдмэл танигч), HTTP нь URI сортуудын аль нэгийг ашигладаг - URL (Нөөцийн нэгдмэл байршуулагч) - нөөцийн нэгдсэн байршуулагч, энэ нь нөөцийн талаархи мэдээллээс гадна түүний физик байршлыг тодорхойлдог.

HTTP серверийн үүрэг бол үйлчлүүлэгчийн хүсэлтийг боловсруулж, шаардлагатай нөөцөөр хангах, эсвэл үүнийг хийх боломжгүй гэж мэдээлэх явдал юм. Дараах диаграмыг авч үзье.


Хэрэглэгч HTTP клиент, ихэвчлэн хөтөчөөр дамжуулан HTTP серверээс тодорхой URL хүсэлт илгээдэг бөгөөд сервер харгалзах URL файлыг, ихэвчлэн HTML хуудсыг шалгаж, илгээдэг. Үүссэн баримт бичиг нь зураг гэх мэт холбогдох эх сурвалжуудын холбоосыг агуулж болно. Хэрэв тэдгээрийг хуудсан дээр харуулах шаардлагатай бол үйлчлүүлэгч серверээс дараалан хүсэлт гаргах бөгөөд зураг, загварын хуудас, үйлчлүүлэгчийн талд гүйцэтгэсэн скрипт гэх мэтийг хүсч болно. Шаардлагатай бүх нөөцийг хүлээн авсны дараа хөтөч HTML баримт бичгийн кодын дагуу тэдгээрийг боловсруулж, бэлэн хуудсыг хэрэглэгчдэд үзүүлнэ.

Олон хүмүүсийн таамаглаж байгаагаар энэ схемд HTTP серверийн нэрийн дор өнөөдөр вэб сервер гэдгээрээ илүү алдартай байгууллага байдаг. Вэб серверийн гол зорилго, үүрэг бол HTTP хүсэлтийг боловсруулж, үр дүнг нь хэрэглэгчдэд буцаах явдал юм. Вэб сервер нь дангаараа контент үүсгэх боломжгүй бөгөөд зөвхөн статик контенттой ажилладаг. Энэ нь орчин үеийн вэб серверүүдийн хувьд ч мөн адил бөгөөд тэдний чадавхийн бүх баялагийг үл харгалзан.

Удаан хугацааны туршид нэг вэб сервер нь бүрэн хэмжээний вэбсайтыг хэрэгжүүлэхэд хангалттай байсан. Гэвч интернет хөгжихийн хэрээр статик HTML-ийн боломжууд эрс хомс болов. Энгийн жишээ: статик хуудас бүр бие даасан бөгөөд үүнтэй холбоотой бүх нөөцийн холбоосыг агуулсан байх ёстой; шинэ хуудас нэмэх үед тэдгээрийн холбоосыг одоо байгаа хуудсуудад нэмэх шаардлагатай, эс тэгвээс хэрэглэгч хэзээ ч тэдгээрт хандах боломжгүй болно. .

Тухайн үеийн сайтууд нь орчин үеийнхтэй бараг төстэй байдаггүй, жишээлбэл, орос хэл дээрх интернетийн анхдагчдын нэг болох Rambler компанийн сайтыг доор харуулав.

Мөн аль нэг холбоос дээр дарах нь орчин үеийн хэрэглэгчийг ерөнхийд нь төөрөлдүүлж болзошгүй тул хөтөч дээрх ижил нэртэй товчлуурыг дарахаас бусад тохиолдолд ийм хуудаснаас буцаж очих боломжгүй юм.

Орчин үеийн вэбсайттай ижил төстэй зүйлийг бий болгох оролдлого нь удалгүй одоо байгаа хуудсуудад өөрчлөлт оруулах ажил улам бүр нэмэгдэв. Эцсийн эцэст, хэрэв бид сайтын ерөнхий хэсэгт ямар нэг зүйлийг, жишээлбэл, толгой дээрх логог өөрчилсөн бол одоо байгаа бүх хуудсан дээр энэ өөрчлөлтийг хийх хэрэгтэй. Хэрэв бид хуудсуудын аль нэгнийх нь замыг өөрчилсөн эсвэл устгасан бол бид үүнтэй холбогдох бүх холбоосыг олж, өөрчлөх эсвэл устгах шаардлагатай болно.

Тиймээс вэб серверийг хөгжүүлэх дараагийн алхам нь технологийн дэмжлэг байв сервер талын идэвхжүүлэгчид - SSI (Серверийн тал орно). Энэ нь хуудасны кодонд бусад файлуудын агуулгыг оруулах боломжийг олгосон бөгөөд энэ нь толгой, хөл, цэс гэх мэт давтагдах элементүүдийг устгах боломжтой болсон. Тус тусад нь файл болгон оруулаад хуудасны эцсийн угсралтын үеэр тэдгээрийг зүгээр л оруулаарай.

Одоо лого эсвэл цэсийн зүйлийг өөрчлөхийн тулд одоо байгаа бүх хуудсыг засварлахын оронд зөвхөн нэг файлд өөрчлөлт хийх шаардлагатай болно. Нэмж дурдахад SSI нь хуудсууд дээр зарим динамик агуулгыг харуулах, жишээлбэл, одоогийн огноо, энгийн нөхцөлүүдийг гүйцэтгэх, хувьсагчтай ажиллах боломжтой болгосон. Энэ нь вэбмастеруудын ажлыг хөнгөвчлөх, хэрэглэгчдийн тав тухыг сайжруулах чухал алхам болсон. Гэсэн хэдий ч эдгээр технологиуд нь үнэхээр динамик вэб сайтыг хэрэгжүүлэх боломжийг бидэнд олгосонгүй.

SSI нь өнөөдөр идэвхтэй ашиглагдаж байгаа бөгөөд үндсэндээ энгийн, нөөцөд тавигдах шаардлага багатай тул хуудасны кодонд зарим статик контент оруулах шаардлагатай байгааг тэмдэглэх нь зүйтэй.

CGI

Вэб технологийн хөгжлийн дараагийн алхам бол сервер тал дээр хэрэглэгчийн хүсэлтийг боловсруулдаг тусгай программууд (скриптүүд) бий болсон явдал юм. Ихэнхдээ тэдгээрийг скрипт хэлээр бичдэг бөгөөд энэ нь анх Perl байсан бол өнөөдөр PHP нь манлайлагчийн далдуу модыг эзэмшдэг. Аажмаар бүхэл бүтэн ангиллын програмууд гарч ирэв - агуулгын удирдлагын системүүд - CMS (Агуулгын удирдлагын систем), хэрэглэгчийн хүсэлтийг динамик боловсруулах чадвартай бүрэн хэмжээний вэб програмуудыг төлөөлдөг.

Одоо нэг чухал зүйл бол вэб серверүүд скриптүүдийг хэрхэн ажиллуулахаа мэдэхгүй байсан бөгөөд мэдэхгүй; тэдний даалгавар бол статик контентод үйлчлэх явдал юм. Энд шинэ объект гарч ирэв - програмын сервер нь скрипт хэлийг орчуулагч бөгөөд тэдгээрт бичигдсэн вэб програмуудыг ажиллуулдаг. DBMS нь хоорондоо холбоотой их хэмжээний мэдээлэлд хандах хэрэгцээ шаардлагаас шалтгаалан ихэвчлэн өгөгдөл хадгалахад ашиглагддаг.

Гэсэн хэдий ч, програмын сервер нь HTTP протоколтой ажиллаж, хэрэглэгчийн хүсэлтийг боловсруулах боломжгүй, учир нь энэ нь вэб серверийн үүрэг юм. Тэдний харилцан үйлчлэлийг хангахын тулд үүнийг боловсруулсан нийтлэг гарц интерфэйс - CGI (Нийтлэг гарц интерфэйс).

CGI нь програм эсвэл протокол биш, яг интерфэйс гэдгийг тодорхой ойлгох хэрэгтэй. програмуудын хоорондын харилцан үйлчлэлийн арга замуудын багц. Түүнчлэн CGI гэдэг нэр томъёог CGI интерфейсээр дамжуулан ажиллахыг дэмждэг программ (скрипт) гэсэн утгатай CGI програм эсвэл CGI скрипт гэсэн ойлголттой андуурч болохгүй.

Өгөгдөл дамжуулахын тулд стандарт оролт/гаралтын урсгалыг ашигладаг; өгөгдлийг вэб серверээс CGI програм руу дамжуулдаг. stdin, дамжуулан буцааж хүлээн авдаг stdout, алдааны мэдээг дамжуулахад ашигладаг stderr.

Ийм системийг ажиллуулах үйл явцыг илүү нарийвчлан авч үзье. Хэрэглэгчийн хөтчөөс хүсэлтийг хүлээн авсны дараа вэб сервер нь динамик контентыг хүсч байгааг тодорхойлж, тусгай хүсэлтийг үүсгэн CGI интерфейсээр дамжуулан вэб програм руу илгээдэг. Үүнийг хүлээн авах үед програм ажиллаж, хүсэлт гаргах бөгөөд үүний үр дүнд динамикаар үүсгэгдсэн хуудасны HTML код гарч, вэб сервер рүү буцаж дамждаг бөгөөд үүний дараа програмаас гарна.

Динамик сайтын өөр нэг чухал ялгаа нь хуудсууд нь хэрэглэгчдэд танилцуулсан хэлбэрээр биет байдлаар байдаггүй явдал юм. Үнэн хэрэгтээ вэб програм байдаг, i.e. скрипт, загваруудын багц, сайтын материал, үйлчилгээний мэдээллийг хадгалдаг мэдээллийн сан; статик контент нь тусад нь байрладаг: зураг, java скрипт, файлууд.

Хүсэлтийг хүлээн авсны дараа вэб програм нь өгөгдлийн сангаас өгөгдлийг авч, хүсэлтэд заасан загвараар дүүргэдэг. Үр дүнг вэб сервер рүү илгээдэг бөгөөд энэ нь ийм маягаар үүсгэсэн хуудсыг статик контентоор (зураг, скрипт, хэв маяг) нэмж, хэрэглэгчийн хөтөч рүү илгээдэг. Хуудас өөрөө кэшээс өөр хаана ч хадгалагдаагүй бөгөөд шинэ хүсэлт ирэхэд хуудас дахин үүсгэгдэх болно.

CGI-ийн давуу тал нь хэл, архитектурын бие даасан байдал юм: CGI програм нь ямар ч хэл дээр бичигдэх боломжтой бөгөөд ямар ч вэб сервертэй адил сайн ажилладаг. Стандартын энгийн бөгөөд нээлттэй байдлыг харгалзан энэ нь вэб програмуудыг хурдацтай хөгжүүлэхэд хүргэсэн.

Гэсэн хэдий ч CGI нь давуу талуудаас гадна мэдэгдэхүйц сул талуудтай байдаг. Хамгийн гол нь процессыг эхлүүлэх, зогсооход шаардагдах өндөр зардал бөгөөд энэ нь техник хангамжийн нөөцөд тавигдах шаардлага нэмэгдэж, гүйцэтгэл багатай байдаг. Стандарт I/O урсгалыг ашиглах нь вэб сервер болон програмын серверийг нэг систем дээр байрлуулахыг шаарддаг тул өргөтгөх чадвар болон өндөр хүртээмжийг хязгаарладаг.

Одоогийн байдлаар CGI нь илүү дэвшилтэт технологиор солигдсон тул бараг ашиглагдаагүй байна.

FastCGI

Нэрнээс нь харахад энэ технологийг хөгжүүлэх гол зорилго нь CGI гүйцэтгэлийг сайжруулах явдал байв. Цаашдын хөгжүүлэлтийн хувьд FastCGI нь вэб сервер болон програмын сервер хоорондын харилцан үйлчлэлд зориулагдсан клиент-серверийн протокол бөгөөд өндөр гүйцэтгэл, аюулгүй байдлыг хангадаг.

FastCGI нь CGI-ийн гол асуудлыг арилгадаг - хүсэлт бүрт вэб програмын процессыг дахин эхлүүлэх; FastCGI процессууд байнга ажиллаж байгаа нь цаг хугацаа, нөөцийг ихээхэн хэмнэх боломжийг олгодог. Мэдээлэл дамжуулахын тулд бид стандарт урсгалын оронд ашигладаг UNIX залгууруудэсвэл TCP/IP, энэ нь танд вэб сервер болон програмын серверүүдийг өөр өөр хостууд дээр байрлуулах боломжийг олгодог бөгөөд ингэснээр системийн өргөтгөх чадвар ба/эсвэл өндөр хүртээмжтэй байдлыг хангана.

Бид нэг компьютер дээр хэд хэдэн FastCGI процессуудыг ажиллуулж болох бөгөөд тэдгээр нь хүсэлтийг зэрэгцүүлэн боловсруулах эсвэл скрипт хэлний өөр өөр тохиргоо эсвэл хувилбартай байдаг. Жишээлбэл, та өөр өөр сайтуудад зориулсан PHP-ийн хэд хэдэн хувилбартай байж, тэдний хүсэлтийг өөр өөр FastCGI процесс руу чиглүүлж болно.

Процессын менежерүүд нь FastCGI процесс болон ачааллын хуваарилалтыг удирдахад ашиглагддаг; тэдгээр нь вэб серверийн нэг хэсэг эсвэл тусдаа програм байж болно. Алдартай вэб серверүүд Apache болон Lighttpd нь FastCGI процессийн менежерүүдтэй байдаг бол Nginx нь FastCGI-тэй ажиллахын тулд гадны менежер шаарддаг.

PHP-FPM болон spawn-fcgi

FastCGI процессуудын гадаад менежерүүдэд PHP-FPM болон spawn-fcgi орно. PHP-FPM нь анх Андрей Нигматулины PHP-д зориулсан засваруудын багц байсан бөгөөд FastCGI процессыг удирдахад хэд хэдэн асуудлыг шийдсэн бөгөөд 5.3 хувилбараас эхлэн энэ нь төслийн нэг хэсэг бөгөөд PHP түгээлтэд багтсан болно. PHP-FPM нь ачааллаас хамааран PHP процессуудын тоог динамикаар удирдаж, хүсэлтийг алдалгүйгээр сангуудыг дахин ачаалж, бүтэлгүйтсэн процессуудыг яаралтай дахин эхлүүлэх боломжтой бөгөөд нэлээд дэвшилтэт менежер юм.

Spawn-fcgi нь Lighttpd төслийн нэг хэсэг боловч ижил нэртэй вэб серверийн нэг хэсэг биш бөгөөд анхдагч байдлаар Lighttpd нь өөрийн, илүү энгийн процессын менежерийг ашигладаг. Хөгжүүлэгчид үүнийг өөр хост дээр байрлах FastCGI процессыг удирдах шаардлагатай эсвэл аюулгүй байдлын дэвшилтэт тохиргоо шаардлагатай тохиолдолд ашиглахыг зөвлөж байна.

Гадны менежерүүд нь FastCGI процесс бүрийг өөрийн chroot-оор тусгаарлах боломжийг олгодог (үүнээс цааш хандах боломжгүй програмын үндсэн директорийг өөрчлөх), энэ нь бусад процессуудын chroot болон вэб серверийн chroot-ээс ялгаатай юм. Дээр дурдсанчлан, тэдгээр нь танд TCP/IP-ээр дамжуулан бусад серверүүд дээр байрлах FastCGI програмуудтай ажиллах боломжийг олгодог; хэрэв дотоод хандалттай бол та хурдан холболтын төрлөөр UNIX залгуураар хандах хандалтыг сонгох хэрэгтэй.

Хэрэв бид диаграммыг дахин харвал бид вэб сервер болон програмын серверүүдийн хооронд зуучлагч процессын менежер болох шинэ элементтэй болохыг харах болно. Илүү олон тооны үйлчилгээг тохируулах, засвар үйлчилгээ хийх шаардлагатай байдаг тул энэ нь схемийг бага зэрэг төвөгтэй болгодог, гэхдээ үүний зэрэгцээ энэ нь илүү өргөн боломжийг нээж өгч, серверийн элемент бүрийг өөрийн даалгаварт тусгайлан тохируулах боломжийг олгодог.

Практикт, суурилуулсан менежер болон гадны менежерийн хооронд сонголт хийхдээ нөхцөл байдлыг ухаалгаар үнэлж, таны хэрэгцээнд хамгийн сайн тохирох хэрэгслийг сонгоорой. Жишээлбэл, стандарт хөдөлгүүр дээр хэд хэдэн сайтад зориулсан энгийн сервер үүсгэх үед гадны менежер ашиглах шаардлагагүй болно. Хэдийгээр хэн ч танд өөрийн үзэл бодлоо тулгадаггүй. Линуксийн сайн тал нь хүн бүр барилгын иж бүрдэл ашиглах гэх мэт яг хэрэгтэй зүйлээ угсарч чаддаг.

SCGI, PCGI, PSGI, WSGI болон бусад

Та вэб хөгжүүлэлтийн сэдвийг судлахдаа бидний гарчигт жагсаасан хамгийн алдартай CGI технологиудын талаархи лавлагаатай таарах нь гарцаагүй. Та ийм олон янз байдалд андуурч магадгүй, гэхдээ хэрэв та манай нийтлэлийн эхлэлийг анхааралтай уншвал CGI болон FastCGI хэрхэн ажилладагийг мэддэг тул эдгээр технологийн аль нэгийг ойлгох нь танд хэцүү биш байх болно.

Тодорхой шийдлийг хэрэгжүүлэхэд ялгаатай байгаа хэдий ч үндсэн зарчмууд нийтлэг хэвээр байна. Эдгээр бүх технологи нь гарцын интерфейсээр хангадаг ( Гарц интерфэйс) вэб сервер болон програмын сервер хоорондын харилцан үйлчлэлд зориулагдсан. Гарцууд нь танд вэб сервер болон вэб програмын орчныг салгах боломжийг олгож, үл нийцэх байдлыг харгалзахгүйгээр дурын хослолыг ашиглах боломжийг олгодог. Энгийнээр хэлбэл, таны вэб сервер танд хэрэгтэй гарцын төрлийг зохицуулж чадах л бол тухайн технологи эсвэл скрипт хэлийг дэмждэг эсэх нь хамаагүй.

Бид гарчигт олон тооны товчлолыг аль хэдийн жагсаасан тул тэдгээрийг илүү нарийвчлан авч үзье.

SCGI (Энгийн нийтлэг гарц интерфэйс) - энгийн нийтлэг гарц интерфэйс- CGI-ийн өөр хувилбараар бүтээгдсэн бөгөөд FastCGI-тай олон талаараа төстэй боловч хэрэгжүүлэхэд хялбар. FastGCI-тэй холбоотой бидний ярьсан бүх зүйл SCGI-ийн хувьд бас үнэн юм.

PCGI (Perl-ийн нийтлэг гарц интерфэйс) - CGI интерфэйстэй ажиллахад зориулсан Perl номын сан нь CGI-ээр дамжуулан Perl програмуудтай ажиллах үндсэн сонголт байсаар ирсэн бөгөөд энэ нь сайн гүйцэтгэлтэй (CGI-ийн хувьд) нөөцийн шаардлага багатай, хэт ачааллын хамгаалалт сайтай.

ПСЖИ (Perl вэб серверийн гарц интерфэйс) - Perl-д зориулсан вэб сервер болон програмын сервер хоорондын харилцан үйлчлэлийн технологи. Хэрэв PCGI нь сонгодог CGI интерфэйстэй ажиллах хэрэгсэл юм бол PSGI нь FastCGI-г илүү санагдуулдаг. PSGI сервер нь үйлчилгээ хэлбэрээр тасралтгүй ажилладаг, вэб сервертэй TCP/IP эсвэл UNIX залгууруудаар холбогдох боломжтой Perl программуудыг ажиллуулах орчныг бүрдүүлж, FastCGI-тай адил ашиг тусыг Perl программуудад олгодог.

WSGI (Вэб серверийн гарц интерфэйс) нь Phyton хэл дээр бичигдсэн программуудын вэб сервер болон програмын сервер хоорондын харилцан үйлчлэлд зориулагдсан өөр нэг тусгай гарц интерфэйс юм.

Таны харж байгаагаар бидний жагсаасан бүх технологиуд нь нэг хэмжээгээр CGI/FastCGI-ийн аналог боловч хэрэглээний тодорхой хэсэгт зориулагдсан юм. Бидний өгсөн өгөгдөл нь тэдгээрийн үйл ажиллагааны зарчим, механизмын талаархи ерөнхий ойлголтод хангалттай байх бөгөөд эдгээр технологи, хэлтэй нухацтай ажиллахад л тэдгээрийг илүү гүнзгий судлах нь утга учиртай болно.

Програмын сервер нь Apache модуль юм

Хэрэв бид өмнө нь хийсвэр вэб серверийн талаар ярьж байсан бол одоо тодорхой шийдлийн талаар ярих болно, энэ нь бидний сонголт биш юм. Вэб серверүүдийн дунд Apache нь онцгой байр суурь эзэлдэг бөгөөд ихэнх тохиолдолд тэд Линукс платформ дээрх вэб серверийн тухай, мөн ерөнхийдөө вэб серверийн тухай ярихдаа Apache байх болно.

Энэ бол нэг төрлийн "анхдагч" вэб сервер гэж та хэлж болно. Ямар ч масс хостинг аваарай - Apache тэнд байх болно, ямар ч вэб програмыг аваарай - анхдагч тохиргоог Apache-д зориулж хийсэн.

Тийм ээ, технологийн үүднээс авч үзвэл Апачи бол технологийн титэм биш, харин алтан дундаж утгыг илэрхийлдэг, энгийн, ойлгомжтой, тохиргоонд уян хатан, бүх нийтийнх юм. Хэрэв та вэбсайт бүтээх эхний алхамаа хийж байгаа бол Apache таны сонголт болно.

Apache аль эрт хуучирсан, бүх "жинхэнэ залуус" Nginx-г аль хэдийн суулгасан гэх мэтийг энд бид зэмлэж болно. гэх мэт тул энэ зүйлийг илүү дэлгэрэнгүй тайлбарлая. Бүх алдартай CMS-үүдийг Apache-д ашиглахаар тохируулсан бөгөөд энэ нь вэб програмтай ажиллахад бүх анхаарлаа төвлөрүүлж, вэб серверийг асуудлын эх үүсвэр болгон арилгах боломжийг олгодог.

Эхлэгчдэд түгээмэл байдаг бүх форумууд Apache-г вэб сервер болгон ашигладаг бөгөөд ихэнх зөвлөмж, зөвлөмжүүд үүнд зориулагдсан болно. Үүний зэрэгцээ өөр вэб серверүүд нь вэб сервер болон вэб програмын аль алинд нь илүү нарийн бөгөөд болгоомжтой тохиргоог шаарддаг. Үүний зэрэгцээ, эдгээр бүтээгдэхүүний хэрэглэгчид ихэвчлэн илүү туршлагатай байдаг бөгөөд тэдний хүрээлэн буй орчинд эхлэгчдэд тохиолддог ердийн асуудлуудыг хэлэлцдэггүй. Үүний үр дүнд юу ч болохгүй, асуух хүнгүй болох нөхцөл байдал үүсч магадгүй юм. Apache-д ийм зүйл тохиолдохгүй нь баталгаатай.

Үнэндээ Апачи хөгжүүлэгчид өөрсдийн оюун ухаанд онцгой байр суурь эзлэх боломжийг олгосон юу хийсэн бэ? Хариулт нь маш энгийн: тэд өөрсдийн замаар явсан. CGI нь тодорхой шийдлүүдээс салж, бүх нийтийн гарц дээр анхаарлаа төвлөрүүлэхийг санал болгож байсан бол Apache үүнийг өөрөөр хийсэн - энэ нь вэб сервер болон програмын серверийг аль болох нэгтгэсэн.

Үнэн хэрэгтээ, хэрэв бид програмын серверийг нийтлэг хаягийн орон зайд вэб серверийн модуль болгон ажиллуулбал илүү хялбар схемийг олж авна.

Энэ нь ямар ашиг тустай вэ? Хэлхээ хэдий чинээ энгийн, цөөн элементтэй байх тусмаа засвар үйлчилгээ, засвар үйлчилгээ хийхэд хялбар бөгөөд хямд бөгөөд бүтэлгүйтлийн цэгүүд бага байдаг. Хэдийгээр энэ нь нэг серверийн хувьд тийм ч чухал биш байж болох ч хостинг дотор энэ нь маш чухал хүчин зүйл юм.

Хоёр дахь давуу тал бол бүтээмж юм. Дахин хэлэхэд бид Nginx фэнүүдийн урмыг хугална, нэг хаягийн орон зайд ажилласны ачаар Apache + mod_php програмын серверийн гүйцэтгэл нь бусад вэб сервер + FastCGI (эсвэл бусад CGI шийдэл) -ээс үргэлж 10-20% илүү хурдан байх болно. Гэхдээ сайтын хурд нь зөвхөн програмын серверийн гүйцэтгэлээс гадна өөр вэб серверүүд илүү сайн үр дүнг үзүүлэх боломжтой хэд хэдэн нөхцлөөр тодорхойлогддог гэдгийг санах хэрэгтэй.

Гэхдээ бас нэг ноцтой давуу тал бий: програмын серверийг тухайн сайт эсвэл хэрэглэгчийн түвшинд тохируулах чадвар. Жаахан эргэж харцгаая: FastCGI/CGI схемд програмын сервер нь өөр хэрэглэгчийн нэрийн өмнөөс эсвэл өөр хост дээр ажиллах боломжтой тусдаа тохиргоотой тусдаа үйлчилгээ юм. Нэг сервер эсвэл зарим томоохон төслийн администраторын үүднээс авч үзвэл энэ нь маш сайн зүйл боловч хэрэглэгчид болон хостинг администраторуудын хувьд тийм ч их биш юм.

Интернетийн хөгжил нь боломжит вэб програмуудын тоо (CMS, скрипт, фреймворк гэх мэт) маш их болж, нэвтрэхэд саад тотгор бага байгаа нь техникийн тусгай мэдлэггүй олон тооны хүмүүсийг татахад хүргэсэн. вэб сайт хөгжүүлэх. Үүний зэрэгцээ өөр өөр вэб програмууд нь програмын серверийн өөр өөр тохиргоог шаарддаг. Би юу хийх хэрэгтэй вэ? Тусламж үйлчилгээтэй холбоо барих шаардлагатай юу?

Шийдэл нь маш энгийн олдсон. Програмын сервер нь одоо вэб серверийн нэг хэсэг болсон тул та сүүлийнх нь тохиргоог нь удирдахыг зааж өгч болно. Уламжлал ёсоор Apache тохиргоог удирдахын тулд тохиргооны файлуудаас гадна httaccess файлуудыг ашигладаг байсан бөгөөд энэ нь хэрэглэгчдэд зааварчилгаагаа тэнд бичиж, тохиргоонууд нь өөрөө дарагдаагүй тохиолдолд энэ файл байгаа болон доор байгаа директорт хэрэглэх боломжийг олгодог. httaccess файл. Mod_php горимд эдгээр файлууд нь тус тусдаа сайт эсвэл лавлахын олон PHP сонголтыг өөрчлөх боломжийг танд олгоно.

Өөрчлөлтүүдийг хүлээн авахын тулд вэб серверийг дахин эхлүүлэх шаардлагагүй бөгөөд алдаа гарсан тохиолдолд зөвхөн энэ сайт (эсвэл түүний хэсэг) ажиллахаа болино. Нэмж дурдахад, сургалтанд хамрагдаагүй хэрэглэгчид ч гэсэн энгийн текст файлд өөрчлөлт оруулан сайтын хавтсанд хийх боломжтой бөгөөд энэ нь бүхэлдээ серверт аюулгүй байдаг.

Эдгээр бүх давуу талуудын нэгдэл нь Apache-г ийм өргөн хэрэглээ, бүх нийтийн вэб сервер статустай болгосон зүйл юм. Бусад шийдлүүд нь илүү хурдан, илүү хэмнэлттэй, илүү сайн байж болох ч тэд үргэлж даалгаврыг өөрчлөх шаардлагатай байдаг тул тэдгээрийг зорилтот төслүүдэд голчлон ашигладаг; Apache нь өөр хувилбаргүйгээр масс сегментэд давамгайлдаг.

Давуу талуудын талаар ярилцсаны дараа сул талууд руу шилжье. Тэдний зарим нь зүгээр л зоосны нөгөө тал юм. Програмын сервер нь вэб серверийн нэг хэсэг болох нь гүйцэтгэл, тохиргоонд хялбар давуу талыг өгдөг боловч аюулгүй байдлын хувьд хоёуланг нь хязгаарладаг - програмын сервер нь үргэлж вэб серверийн нэрийн өмнөөс ажилладаг бөгөөд системийн уян хатан чанар юм. , бид чадахгүй Бид вэб сервер болон програмын серверийг өөр өөр хостуудад түгээх боломжтой; бид скрипт хэлний өөр хувилбар эсвэл өөр тохиргоотой серверүүдийг ашиглах боломжгүй.

Хоёрдахь сул тал бол нөөцийн өндөр хэрэглээ юм. CGI схемд програмын сервер хуудас үүсгэж вэб сервер рүү илгээснээр нөөцийг чөлөөлдөг; Apache + mod_php хослол нь вэб сервер хуудасны агуулгыг үйлчлүүлэгч рүү буцаах хүртэл програмын серверийн нөөцийг завгүй байлгадаг. Хэрэв үйлчлүүлэгч удаан байвал нөөц нь үйлчилгээнийхээ бүх хугацаанд завгүй байх болно. Тийм ч учраас Nginx-ийг ихэвчлэн Apache-ийн өмнө байрлуулдаг бөгөөд энэ нь хурдан үйлчлүүлэгчийн үүрэг гүйцэтгэдэг; энэ нь Apache-д хуудсанд хурдан үйлчлэх, харилцагчтай харилцах харилцааг илүү хэмнэлттэй Nginx рүү шилжүүлэх замаар нөөцийг чөлөөлөх боломжийг олгодог.

Дүгнэлт

Орчин үеийн технологиудыг бүхэлд нь нэг нийтлэлд багтаах боломжгүй тул бид зөвхөн гол зүйл дээр анхаарлаа төвлөрүүлж, зарим зүйлийг зориудаар ардаа орхиж, мөн ихээхэн хялбаршуулсан аргуудыг ашигласан. Та энэ чиглэлээр ажиллаж эхлэхэд тухайн сэдвийг илүү гүнзгий судлах шаардлагатай болох нь дамжиггүй, гэхдээ шинэ мэдлэгийг олж авахын тулд бид энэ материалаар бий болгохыг хичээсэн онолын тодорхой үндэс хэрэгтэй болно.

Код бичих явцад гарсан алдааг хянах

Хайлтын систем дэх вэбсайтын хяналт

Ирээдүйн төслийн ноорог зурах

Дизайн, вэб хөгжүүлэлтийн асуудлыг шийдвэрлэх онлайн үйлчилгээ

  • Сервертэй ажиллах

Apache серверийг суулгаж байна

Денвер болон үүнтэй төстэй програмуудын ачаар компьютер дээрээ локал сервер суулгах, тохируулах нь маш хялбар болсон. Энэ талаар маш их зүйл бичсэн бөгөөд суулгах процесс нь өөрөө ойлгомжтой байдаг. Гэхдээ та туслах програм хангамжийн тусламжгүйгээр серверийг тохируулах боломжтой бөгөөд зөвхөн ажилд шаардлагатай зүйлийг суулгаж болно. Энэ нийтлэлд бид Apache серверийг компьютер дээрээ суулгаж, цаашдын ажилд хэрхэн тохируулах талаар ярих болно.

PHP суулгаж, тохируулж байна

Apache серверийг суулгах, тохируулах бүх ажил ард хоцорсон үед та PHP-г компьютер дээрээ суулгаж, цаашдын ажилд зориулж тохируулах боломжтой.

Өгөгдлийн сангийн сервер (MySQL) суулгах, тохируулах

Хэрэв та мэдээллийн баазыг ашиглан вэбсайт хийх гэж байгаа бол (мөн энэ нь хамгийн их магадлалтай) бүрэн ажиллагаатай байхын тулд Apache болон PHP-ээс гадна мэдээллийн сангийн сервер суулгаж, тохируулах шаардлагатай болно - бидний тохиолдолд энэ нь MySQL юм. Үүнийг энэ нийтлэлд хэлэлцэх болно.

phpMyAdmin суулгаж, тохируулж байна

Өгөгдлийн сантай ажиллахдаа командын мөрийг ашиглахад төвөг учруулдаггүй хүмүүст, мөн тушаалын мөрөөр мэдээллийн сантай хэрхэн ажиллахыг мэддэг хүмүүст энэ алхам шаардлагагүй. Бусад бүх хүмүүсийн хувьд локал серверийг тохируулах сүүлчийн алхамыг энд тайлбарлах болно - бид мэдээллийн сантай ажиллахад ихээхэн хөнгөвчлөх график бүрхүүлийг суулгаж, тохируулах болно. Бид phpMyAdmin-ийн талаар ярих болно.

Бид "Сошиал медиа контент маркетинг: Дагагчдынхаа толгойд хэрхэн орж, брэнддээ дурлуулах вэ" хэмээх шинэ ном гаргалаа.

Вэб сервер нь хэрэглэгчийн хүсэлтийг хүлээн авч, тэдэнд хариулт өгөх сервер юм - баримт бичиг, хуудас эсвэл вэбсайт.


Манай суваг дээрх бусад видеонууд - SEMANTICA-тай интернет маркетинг сур

Ямар ч компьютерийг сервер болгож болно. Үүнийг хийхийн тулд та тусгай бүрхүүл суулгах хэрэгтэй.

Техникийн хэсэгт тавигдах шаардлагыг хуваарилсан нөөцийн тоо, хурдны шаардлагаар тодорхойлно. Тэд том байх тусам компьютер илүү хүчирхэг байх ёстой.
Ойлгомжтой болгохын тулд зүйрлэл хэлье. Номын санд очоод ном өгөөч гэж гуйна. Номын санч танд хэрэгтэйг нь олоод өгдөг. Номын сан бол сервер бөгөөд бүх өгөгдөл түүнд хадгалагддаг. Номын санч бол хүсэлтийг хүлээн авч хариу илгээсэн бүрхүүл юм. Та бол үйлчлүүлэгч.
Та линк дээр дарахтай адил дэлгэрэнгүй мэдээллийг номын санч руу илгээж болно. Үүний ялгаа нь интернет дэх ижил эх сурвалжийг хязгааргүй тооны хэрэглэгчид нэгэн зэрэг унших боломжтой юм.
Үйлчлүүлэгчийн үйлчилгээ нь ижил төстэй зарчмын дагуу явагддаг: бид ном авахаар ирэхдээ номын санчаас асуулт асууж болно (хайлтын систем) эсвэл индексээс (Yandex каталог) харж болно. Энэ нь танд хэрэгтэй мэдээллээ олоход тусална.

Вэб сервер юу хийдэг вэ?

Үүний гол үүрэг бол мэдээллийг хадгалах явдал юм. Хуудас, файл, зураг, текстийн агуулга.
Даалгаварууд:

  • Хүсэлт хүлээн авах.
  • Тусгай програмчлалын хэлээр (сервер) програмуудыг ажиллуул.
  • Вэб хуудас үүсгэх.
  • Тэдгээрийг хэрэглэгч рүү буцааж илгээнэ үү.
  • Мэдээллийг хамгаалах.
  • Зочдыг тодорхойлох.
  • Хүсэлтийн бүртгэл хөтөл.
  • Бусад төрлийн хүсэлтэд үйлчлэх: mailto гэх мэт.

Вэб сервер хэрхэн ажилладагийг ойлгохын тулд сүлжээнд мэдээлэл дамжуулах зарчмуудын талаар ойлголттой байх шаардлагатай. Энэ нь протокол гэж нэрлэгддэг дүрмүүд дээр суурилдаг: дурын URL нь тухайн төрлийн (ftp, http://, https:// гэх мэт) заалтаас эхэлдэг.
Hyper Text Transfer Protocol - дамжуулах протокол. Сайтын хуудаснууд нь үргэлж гипертекст баримт бичиг хэлбэртэй байдаг. Энэ нь аливаа сервер эсвэл клиент програмын эцсийн үр дүн юм.

  • Хэрэглэгч хаягаа оруулах эсвэл холбоос дээр дарах үед хөтөч эдгээр дүрмийн дагуу мэдээллийг кодлох замаар хүсэлт гаргадаг.
  • Энэ хаягийг холбосон хост нь серверийн программуудыг ажиллуулдаг. Тэд тус бүр өөрийн гэсэн үүргийг гүйцэтгэдэг.
  • Хүлээн авсан өгөгдлийг тайлж, тушаалуудыг гүйцэтгэдэг.
  • Гипертекстийг үүсгэж, кодлож, буцааж илгээдэг.
  • Хөтөч нь хариултыг хүлээн авч, кодыг html болгон хөрвүүлж, хуудсыг дэлгэцэн дээр харуулна.

Вэб серверт юу хэрэгтэй вэ

Бидэнд бүх хүсэлтийг боловсруулах машин хэрэгтэй байна. Серверийн тэсвэрлэх ёстой ачааллыг тооцоол. Энэ нь зочдын тооноос хамаарна: илүү их хүсэлт, илүү их хүч шаардагдана.

Хостинг үйлчилгээ үзүүлдэг тусгай компаниуд байдаг. Та сервер түрээсэлж байна. Танд сайтын файлуудыг байршуулах квот өгсөн.
Гэхдээ хэрэв та энгийн вэбсайттай бол үүнийг өөрөө хийх боломжтой.

Сервертэй холбоотой асуудал шийдэгдсэн үед та статик IP хаягийг түүнд холбох хэрэгтэй.

Домэйн нэрийг бүртгэсний дараа сайт вэб сервер дээр боломжтой болно, хаягууд нь IP хаяг (жишээ нь, 111.111.111.111) болон домэйн нэрийг (www.site.com) холбосон DNS үйлчилгээгээр орчуулагддаг.

Хамгийн түгээмэл серверүүд

Апачи

Энэ бол олон давуу талтай, үнэ төлбөргүй, чөлөөтэй тараагддаг бүтээгдэхүүн юм.

  • Хөгжүүлэгчийн байнгын дэмжлэг.
  • PHP, Perl, Python, Ruby, ASP гэх мэт серверийн програмчлалын хэлтэй ажиллах модулиуд.
  • Нээлттэй эх сурвалж. Төрөл бүрийн программистууд өөрсдийн хэрэгцээнд нийцүүлэн өөрчлөлт хийдэг. Жишээлбэл, орос хэлээр ярьдаг нийгэмлэг үүнийг Оросын кодчилолд тохируулдаг.
  • . Анх Unix-д зориулж бүтээгдсэн боловч одоо Windows, Mac OS, BSD, Linux, OS/2 болон Novell NetWare дэмждэг.
  • Аюулгүй байдал.

Суулгах явцад өөрийн хостын нэрийг зааж өгнө үү, жишээ нь localhost. Дурын html хуудсыг Apachex.x хавтсанд байгаа htdocs хавтас руу хуулна уу (энд x.x нь хувилбарын дугаар). Эсвэл Notepad дээр дурын бичвэрээ оруулаад html өргөтгөлөөр хадгалах замаар үүсгэж болно.

Файл хавтсанд гарч ирэх үед хөтчөө нээж, хаягийг бичнэ үү: localhost://PAGE NAME.html. Таны текст дэлгэц дээр гарч ирнэ - хуудас серверээс нээгдэнэ. Хэрэв та "Сайт руу нэвтрэх боломжгүй" гэсэн алдааг харвал Apache ажиллахгүй байна гэсэн үг. Түүний дүрс нь тавиур дээр байна.
Үүн дээр товшоод "Тоглох" гэснийг сонгоно уу. Үүний дараа бүх зүйл ажиллах болно.

NGNIX

Үүн дээр ажиллаж байгаа идэвхтэй сайтуудын эзлэх хувь 21.13% (Netcraft судалгаа). Үүнийг голчлон томоохон компаниуд, мэргэжлийн хөгжүүлэгчид ашигладаг: Yandex, Mail.ru, Rambler гэх мэт NGNIX нь зочдын асар их ачааллыг тэсвэрлэх чадвартай, найдвартай, аюулгүй, бодолтой байдаг.
Энэ нь чөлөөтэй тараагддаг боловч төлбөртэй Plus хувилбарууд гарч ирсэн бөгөөд 2500 долларын үнэтэй.

IIS

Түүний алдар нэр нь хөгжүүлэгчийн алдартай нэрээр баталгааждаг. Энэ нь вэб үйлчилгээний багц бөгөөд Windows-тэй нэгдсэн. Уугуул програмчлалын платформ нь ASP.NET боловч PHP гэх мэт хувилбарыг хэрэгжүүлэх боломжтой.

Бүрэн хостинг нь Microsoft – Windows Server-ээс серверийн үйлдлийн системийг суулгахыг шаарддаг. 6-р хувилбар нь байршуулахад зориулагдаагүй бөгөөд 7-р сараас бүрэн дэмжлэг үзүүлж эхэлсэн. Энэ нь үйлдлийн системтэй хамт автоматаар худалдаж авдаг бөгөөд түүний шинж чанараас хамаардаг.

Суурилуулалтын багцууд

Шинэхэн програмистууд болон хөгжүүлэгчдэд зориулж хэдхэн товшилтоор вэб серверийг компьютер дээрээ байрлуулах боломжийг олгодог хэрэгслүүдийг бий болгож байна.

  • Нээлттэй сервер. Олон тооны мэдээллийн сан, програмчлалын хэл, тэдгээрийн хувилбарууд, түүнчлэн нэмэлт үйлчилгээг багтаасан зөөврийн хөгжүүлэлтийн орчин. Жишээлбэл, PhpMyAdmin мэдээллийн сантай ажиллах интерфейс. Өнөөдөр энэ бол хамгийн алдартай суулгах хэрэгсэл юм. Энэ нь флаш дискнээс хүртэл ажилладаг. Бага хурдтайгаар үнэгүй татаж авах. 100 рублийн хувьд хурд нь мэдэгдэхүйц нэмэгддэг.
  • Хампп. Идэвхтэй дэмжигдсэн багц: Apache, Php, Perl, MariaDB гэх мэт. Хяналтын самбартай. Үнэгүй татаж авах.
  • . Apache, PHP, MySQL, PhpMyAdmin зэрэг шаардлагатай бүх хэрэгслүүдийн маш тохиромжтой багц. Харамсалтай нь хамгийн сүүлийн хувилбар нь хуучирсан түгээлтүүдийг агуулдаг. Ерөнхийдөө тэд бэлтгэл хийхэд тохиромжтой. Форумаас харахад төсөл дэмжигдэхгүй болсон.

Аливаа тоног төхөөрөмж, түүний дотор серверийн тоног төхөөрөмж заримдаа урьдчилан таамаглах аргагүй ажиллаж эхэлдэг. Энэ төхөөрөмж нь шинэ эсвэл хэдэн жилийн турш бүрэн ачаалалтай ажиллаж байгаа эсэх нь огт хамаагүй.

Бүтэлгүйтэл, буруу ажиллагаатай олон тохиолдол байдаг бөгөөд асуудлыг оношлох нь ихэвчлэн сонирхолтой оньсого болж хувирдаг.

Доор бид зарим сонирхолтой, өчүүхэн бус тохиолдлуудын талаар ярих болно.

Алдааг олж засварлах

Асуудлыг бүртгэх нь ихэвчлэн үйлчлүүлэгчид тасалбарын системээр дамжуулан техникийн дэмжлэгтэй холбоо барсны дараа тохиолддог.

Хэрэв үйлчлүүлэгч бидэнтэй холбогдож, тогтмол тохиргоотой тусгай сервер түрээслэх юм бол асуудал нь програм хангамж биш гэдгийг олж тогтоохын тулд оношилгоо хийдэг.

Үйлчлүүлэгчид програм хангамжийн асуудлыг ихэвчлэн өөрсдөө шийддэг боловч ямар ч тохиолдолд бид системийн администраторуудаас тусламж санал болгохыг хичээдэг.

Хэрэв асуудал нь техник хангамж (жишээлбэл, сервер RAM-ийн хэсгийг харахгүй) байгаа нь тодорхой болвол энэ тохиолдолд бид үргэлж ижил төстэй серверийн платформыг нөөцөлж авдаг.

Хэрэв техник хангамжийн асуудал илэрсэн бол бид бүтэлгүйтсэн серверээс дискийг нөөц рүү шилжүүлж, сүлжээний төхөөрөмжийг бага зэрэг дахин тохируулсны дараа серверийг ажиллуулна. Тиймээс өгөгдөл алдагдахгүй бөгөөд нэвтрэх хугацаа 20 минутаас хэтрэхгүй.

Асуудал, шийдлийн жишээ

Сервер дээрх сүлжээний доголдол

Дискийг бүтэлгүйтсэн серверээс нөөц рүү шилжүүлсний дараа сервер дээрх сүлжээ ажиллахаа болих магадлалтай. Энэ нь ихэвчлэн Debian эсвэл Ubuntu гэх мэт Linux үйлдлийн системийг ашиглах үед тохиолддог.

Үйлдлийн системийг анх суулгаж байх үед сүлжээний картуудын MAC хаягуудыг /etc/udev/rules.d/70-persistent-net.rules хаягаар байрлах тусгай файлд бичдэг.

Үйлдлийн систем эхлэхэд энэ файл нь интерфэйсийн нэрийг MAC хаягтай харуулдаг. Серверийг нөөцлөлтөөр солих үед сүлжээний интерфэйсүүдийн MAC хаягууд тохирохоо больсон нь сервер дээр сүлжээ ажиллахгүй болоход хүргэдэг.

Асуудлыг шийдэхийн тулд та заасан файлыг устгаад сүлжээний үйлчилгээг дахин эхлүүлэх эсвэл серверийг дахин эхлүүлэх хэрэгтэй.

Энэ файлыг олоогүй үйлдлийн систем нь автоматаар ижил төстэй файлыг үүсгэж, сүлжээний картуудын шинэ MAC хаягтай интерфэйсүүдийг тохируулах болно.

Үүний дараа IP хаягийг дахин тохируулах шаардлагагүй, сүлжээ нэн даруй ажиллаж эхэлнэ.

Хөвөгч хөлдөх асуудал

Нэгэн өдөр сервер ажиллаж байх үед санамсаргүй хөлддөг гэсэн оношилгоо хийхээр манайд ирсэн. Бид BIOS болон IPMI бүртгэлийг шалгасан - хоосон, алдаа байхгүй. Бид үүнийг стрессийн туршилтанд оруулж, бүх процессорын цөмийг 100% ачаалж, нэгэн зэрэг температурыг хянадаг - 30 минутын турш ажилласны дараа хөлдсөн.

Үүний зэрэгцээ процессор хэвийн ажиллаж, температур нь ачааллын дор стандарт хэмжээнээс хэтрэхгүй, бүх хөргөгч сайн ажиллаж байсан. Асуудал хэт халаагүй нь тодорхой болов.

Дараа нь RAM модулиудын бүтэлгүйтлээс зайлсхийх шаардлагатай байсан тул бид нэлээд алдартай Memtest86+ ашиглан серверийг санах ойн туршилтанд оруулав. Ойролцоогоор 20 минутын дараа сервер хүлээгдэж буйгаар эвдэрч, RAM модулиудын аль нэгэнд алдаа гарав.

Модулийг шинээр сольсны дараа бид серверийг дахин туршиж үзсэн боловч алдаа биднийг хүлээж байв - сервер дахин хөлдөж, өөр RAM модулийн алдааг үүсгэв. Тэд бас түүнийг сольсон. Өөр нэг туршилт - энэ нь дахин хөлдөж, RAM-д дахин алдаа гаргасан. RAM-ийн слотуудыг сайтар шалгаж үзэхэд ямар ч согог илрээгүй.

Зөвхөн нэг л буруутан үлдсэн - төв процессор. Баримт нь RAM хянагч нь процессор дотор байрладаг бөгөөд энэ хянагч нь бүтэлгүйтэж болзошгүй юм.

Процессорыг салгасны дараа бид сүйрлийг олж мэдэв - залгуурын нэг зүү дээд хэсэгт нь эвдэрсэн, тээглүүрийн эвдэрсэн үзүүр нь процессорын контакт дэвсгэр дээр наалдсан байв. Үүний үр дүнд сервер дээр ачаалал байхгүй үед бүх зүйл хэвийн ажиллаж байсан боловч процессорын температур нэмэгдэхэд контакт эвдэрч, улмаар RAM хянагчийн хэвийн ажиллагааг зогсоож, хөлдсөн.

Асуудлыг эх хавтанг солих замаар эцэслэн шийдсэн, учир нь харамсалтай нь бид эвдэрсэн залгуурыг сэргээж чадахгүй байгаа бөгөөд энэ нь үйлчилгээний төвийн үүрэг юм.

Үйлдлийн системийг суулгах явцад төсөөлж буй сервер хөлддөг

Тоног төхөөрөмж үйлдвэрлэгчид хуучин технологиудыг дэмжихээс татгалзаж, шинэ технологид нийцүүлэн техник хангамжийн архитектурыг өөрчилж эхлэхэд нэлээд инээдтэй тохиолдол гардаг.

Хэрэглэгч Windows Server 2008 R2 үйлдлийн системийг суулгах гэж оролдох үед сервер хөлдсөн тухай гомдол гаргаж бидэнтэй холбогдож байна. Суулгагчийг амжилттай ажиллуулсны дараа сервер KVM консол дахь хулгана болон гарт хариу өгөхөө больсон. Асуудлыг нутагшуулахын тулд бид физик хулгана, гарыг серверт холбосон - бүх зүйл адилхан, суулгагч эхэлж, оролтын төхөөрөмжүүдэд хариу өгөхөө больсон.

Тухайн үед энэ сервер нь Supermicro-ийн үйлдвэрлэсэн X11SSL-f эх хавтан дээр суурилсан анхны серверүүдийн нэг байсан юм. BIOS тохиргоонд нэг сонирхолтой зүйл байсан: Windows 7 суулгаж, "Идэвхгүй" гэж тохируулсан. Windows 7, 2008, 2008 R2-ийг нэг суулгагч дээр суулгасан тул бид энэ параметрийг "Идэвхжүүлэх" гэж тохируулсан бөгөөд хулгана болон гар нь эцэст нь ажиллаж эхэлсэн. Гэхдээ энэ нь үйлдлийн системийг суулгасан туульсын зөвхөн эхлэл байсан юм.

Суулгах дискийг сонгох үед нэг ч диск харагдахгүй байсан бөгөөд нэмэлт драйвер суулгах шаардлагатай гэсэн алдааны мессежийг өгсөн. Үйлдлийн системийг USB флаш дискнээс суулгасан бөгөөд интернетээс хурдан хайлт хийснээр суулгалтын програм нь USB 3.0 хянагчийн драйверуудыг олж чадахгүй тохиолдолд ийм нөлөө үзүүлдэг болохыг харуулсан.

Википедиа нь BIOS-д USB 3.0 (XHCI хянагч) дэмжлэгийг идэвхгүй болгосноор асуудал шийдэгдсэн гэж мэдээлсэн. Эх хавтангийн баримт бичгийг нээхэд биднийг гэнэтийн зүйл хүлээж байсан - хөгжүүлэгчид XHCI (eExtensible Host Controller Interface) дээр EHCI (Сайжруулсан хост хянагч интерфэйс) хянагчийг бүрэн орхихоор шийдсэн. Өөрөөр хэлбэл, энэ эх хавтан дээрх бүх USB портууд нь USB 3.0 портууд юм. Хэрэв бид XHCI хянагчийг идэвхгүй болговол оролтын төхөөрөмжүүдийг идэвхгүй болгож, сервертэй ажиллах боломжгүй болгож, үүний дагуу үйлдлийн системийг суулгах болно.

Серверийн платформууд нь CD/DVD дискийг унших хөтчөөр тоноглогдоогүй тул асуудлын цорын ганц шийдэл нь драйверуудыг үйлдлийн системийн түгээлтэд шууд нэгтгэх явдал байв. Зөвхөн USB 3.0 хянагч драйверуудыг нэгтгэж, суулгацын дүрсийг дахин бүтээснээр бид энэ сервер дээр Windows Server 2008 R2 суулгаж чадсан бөгөөд инженерүүд үр дүнгүй оролдлого хийхэд шаардлагагүй цагийг үрэхгүй байх үүднээс энэхүү тохиолдлыг манай мэдээллийн санд оруулсан болно.

Үйлчлүүлэгчид биднийг байрлуулахаар тоног төхөөрөмж авчирч өгдөг ч санаснаар болдоггүй тохиолдол бүр ч хөгжилтэй байдаг. Dell PowerVault цуврал дискний тавиуртай яг ийм зүйл тохиолдсон.

Энэхүү төхөөрөмж нь iSCSI протоколоор ажиллах зориулалттай хоёр диск хянагч, сүлжээний интерфейс бүхий өгөгдөл хадгалах систем юм. Эдгээр интерфейсээс гадна алсын удирдлагад зориулсан MGMT порт байдаг.

Байршсан тоног төхөөрөмжийн үйлчилгээнүүдийн дунд "Нэмэлт 10 Мбит/с порт" тусгай үйлчилгээ байдаг бөгөөд хэрэв серверийн удирдлагын хэрэгслийг алсаас холбох шаардлагатай бол захиалж болно. Эдгээр сангууд өөр өөр нэртэй байдаг:

  • Hewlett-Packard-аас "iLO";
  • Dell-ийн "iDrac";
  • Supermicro-ийн IPMI.
Тэдний үйл ажиллагаа нь ойролцоогоор ижил байдаг - серверийн статусыг хянах, алсын консол руу нэвтрэх. Үүний дагуу тэд өндөр сувгийн хурд шаарддаггүй - 10 Мбит / с нь тав тухтай ажиллахад хангалттай юм. Энэ бол үйлчлүүлэгчийн захиалсан үйлчилгээ юм. Бид зэсийн зохих хуваарилалтыг хийж, сүлжээний тоног төхөөрөмжийнхөө портыг тохируулсан.

Хурдыг хязгаарлахын тулд портыг зүгээр л 10BASE-T гэж тохируулсан бөгөөд хамгийн дээд тал нь 10 Mbps хурдтайгаар идэвхждэг. Бүх зүйл бэлэн болсны дараа бид дискний тавиурын MGMT портыг холбосон боловч үйлчлүүлэгч түүнд юу ч ажиллахгүй байна гэж бараг тэр даруй мэдэгдэв.

Шилжүүлэгч портын төлөвийг шалгасны дараа бид "Физик холбоос тасарсан" гэсэн таагүй мессежийг олж мэдсэн. Энэ мессеж нь шилжүүлэгч болон түүнд холбогдсон үйлчлүүлэгчийн төхөөрөмжийн хооронд физик холболттой холбоотой асуудал байгааг харуулж байна.

Муу хавчуулсан холбогч, эвдэрсэн холбогч, кабель дахь эвдэрсэн утаснууд - энэ бол холбоос байхгүй болоход хүргэдэг асуудлын жижиг жагсаалт юм. Мэдээжийн хэрэг, манай инженерүүд тэр даруй эрчилсэн хос шалгагч авч, холболтыг шалгасан. Бүх утаснууд төгс холбогдсон, кабелийн хоёр төгсгөл төгс хавчуулсан. Үүнээс гадна туршилтын зөөврийн компьютерийг энэ кабельд холбосноор бид хүлээгдэж буй 10 Mbit/s хурдтай холболтыг хүлээн авсан. Асуудал нь үйлчлүүлэгчийн тоног төхөөрөмжтэй холбоотой гэдэг нь тодорхой болсон.

Бид үйлчлүүлэгчиддээ асуудлыг шийдвэрлэхэд нь туслахыг үргэлж хичээдэг тул холбоос байхгүй байгаа шалтгаан нь яг юу болохыг олж мэдэхээр шийдсэн. Бид MGMT порт холбогчийг сайтар шалгаж үзсэн - бүх зүйл эмх цэгцтэй байна.

Энэ портыг програм хангамжийн талаас "унтраах" боломжтой эсэхийг тодруулахын тулд бид үйлдвэрлэгчийн вэбсайтаас анхны үйлдлийн зааврыг олсон. Гэсэн хэдий ч энэ боломжийг хангаагүй - портыг ямар ч тохиолдолд автоматаар босгосон. Хэдийгээр ийм тоног төхөөрөмж Auto-MDI(X)-ийг үргэлж дэмжих ёстой - өөрөөр хэлбэл аль кабелийг холбосоныг зөв тодорхойлох хэрэгтэй: ердийн эсвэл кроссовер, туршилт хийхийн тулд бид кроссоверыг хавчиж, ижил шилжүүлэгч порт руу оруулсан. Бид шилжүүлэгч порт дээр хоёр талт параметрийг хүчээр оролдсон. Үр нөлөө нь тэг байсан - ямар ч холбоос байхгүй, санаанууд аль хэдийн дуусч байв.

Энд инженерүүдийн нэг нь тоног төхөөрөмж нь 10BASE-T-ийг дэмждэггүй бөгөөд зөвхөн 100BASE-TX эсвэл бүр 1000BASE-X дээр ажиллах болно гэсэн үндэслэлгүй таамаглал дэвшүүлсэн. Ер нь ямар ч порт, тэр ч байтугай хамгийн хямд төхөөрөмж дээр байсан ч 10BASE-T-тэй нийцдэг бөгөөд эхлээд инженерийн таамаглалыг "зохиомол" гэж үгүйсгэсэн боловч цөхрөнгөө барсандаа портоо 100BASE-TX руу шилжүүлэхээр шийджээ.

Бидний гайхшрал хязгааргүй байсан тул холбоос тэр даруй дээшилсэн. MGMT порт дээр 10BASE-T дэмжлэг байхгүй байгаа нь яг юунаас болж байгаа нь нууц хэвээр байна. Ийм тохиолдол маш ховор боловч тохиолддог.

Үйлчлүүлэгч биднээс дутахааргүй гайхсан бөгөөд асуудлыг шийдэж өгсөнд маш их талархаж байлаа. Үүний дагуу тэд 100BASE-TX портоос гарч, хурдыг хязгаарлах механизмыг ашиглан порт дээрх хурдыг шууд хязгаарлав.

Хөргөлтийн турбины эвдрэл

Нэг өдөр үйлчлүүлэгч манайд ирээд серверийг устгаад үйлчилгээний газар руу зөөхийг хүссэн. Инженерүүд бүх зүйлийг хийж, түүнийг ганцааранг нь тоног төхөөрөмжтэй нь үлдээжээ. Нэг цаг өнгөрч, хоёр, гурав - үйлчлүүлэгч серверийг үргэлжлүүлэн ажиллуулж/ зогсоож, бид асуудал юу болохыг асуув.

Hewlett-Packard сервер дээрх зургаан хөргөлтийн турбины хоёр нь бүтэлгүйтсэн байна. Сервер асч, хөргөлтийн алдаа гарч, тэр даруй унтарна. Энэ тохиолдолд сервер нь чухал үйлчилгээтэй гипервизорыг байршуулдаг. Үйлчилгээний хэвийн ажиллагааг сэргээхийн тулд виртуал машинуудыг өөр физик цэг рүү яаралтай шилжүүлэх шаардлагатай болсон.

Бид үйлчлүүлэгчид дараах байдлаар туслахаар шийдсэн. Ер нь сервер нь хөргөлтийн сэнстэй холбоотой бүх зүйл зүгээр гэдгийг зөвхөн эргэлтийн тоог уншсанаар ойлгодог. Үүний зэрэгцээ, мэдээжийн хэрэг Hewlett-Packard-ийн инженерүүд анхны турбиныг аналог - стандарт бус холбогч, стандарт бус зүүгээр солих боломжгүй байхын тулд бүх зүйлийг хийсэн.

Ийм хэсгийн эх хувь нь ойролцоогоор 100 долларын үнэтэй бөгөөд та зүгээр л очоод худалдаж авах боломжгүй - та үүнийг гадаадаас захиалах хэрэгтэй. Аз болоход бид интернетээс анхны зүү бүхий хэлхээг олж, нэг зүү нь секундэд хөдөлгүүрийн эргэлтийн тоог унших үүрэгтэй болохыг олж мэдэв.

Үлдсэн хэсэг нь технологийн асуудал байсан - бид прототип хийхдээ хэд хэдэн утас авч (санамсаргүй байдлаар бид гартаа байсан - манай инженерүүдийн зарим нь Arduino-г сонирхож байгаа) хөрш зэргэлдээх ажлын турбинуудын тээглүүрүүдийг бүтэлгүйтсэнүүдийн холбогчтой холбосон. . Сервер эхэлж, үйлчлүүлэгч эцэст нь виртуал машинуудыг шилжүүлж, үйлчилгээг эхлүүлж чадсан.

Мэдээжийн хэрэг, энэ бүгдийг зөвхөн үйлчлүүлэгчийн хариуцлагын дор хийсэн боловч эцэст нь ийм стандарт бус алхам нь сул зогсолтыг хамгийн бага хэмжээнд хүртэл бууруулах боломжтой болгосон.

Дискнүүд хаана байна?

Зарим тохиолдолд асуудлын шалтгаан нь заримдаа маш өчүүхэн биш байдаг тул үүнийг олоход маш их цаг хугацаа шаардагддаг. Манай үйлчлүүлэгчдийн нэг нь санамсаргүй дискний эвдрэл, сервер хөлдсөн тухай гомдоллох үед ийм зүйл болсон. Техник хангамжийн платформ - Supermicro in case 847 (4U form factor) 36 хөтчийг холбох тортой. Серверт гурван ижил Adaptec RAID хянагч суулгасан бөгөөд тус бүрдээ 12 диск холбогдсон байна. Асуудал гарсан үед сервер санамсаргүй тооны дискийг харахаа больж, царцсан. Серверийг үйлдвэрлэлээс хасч, оношилгоо эхэлсэн.

Бидний олж мэдсэн хамгийн эхний зүйл бол дискнүүд зөвхөн нэг хянагч дээр унаж байсан. Үүний зэрэгцээ "унасан хөтчүүд" нь уугуул Adaptec удирдлагын хэрэгслийн жагсаалтаас алга болж, сервер бүрэн унтарч, дахин холбогдсон үед л дахин гарч ирэв. Хамгийн түрүүнд хянагчийн програм хангамж санаанд орж ирсэн. Гурван хянагч бүгд бага зэрэг өөр програм хангамжтай байсан тул бүх хянагч дээр ижил програмын хувилбарыг суулгахаар шийдсэн. Бид үүнийг хийж, серверийг хамгийн их ачааллын горимд ажиллуулсан - бүх зүйл санаснаар ажилладаг. Асуудлыг шийдсэн гэж тэмдэглэсний дараа серверийг үйлдвэрлэхээр үйлчлүүлэгч рүү буцаасан.

Хоёр долоо хоногийн дараа дахин ижил асуудал гарлаа. Хянагчийг ижил төстэй төхөөрөмжөөр солихоор шийдсэн. Бид үүнийг дуусгаж, гэрэлтүүлж, холбож, туршилтанд оруулав. Асуудал хэвээр үлдсэн - хоёр хоногийн дараа шинэ хянагч дээрх бүх дискүүд унаж, сервер аюулгүйгээр хөлдсөн.

Бид хянагчийг өөр үүрэнд дахин суулгаж, арын самбар болон SATA кабелийг хянагчаас арын самбар руу сольсон. Долоо хоногийн турш туршилт хийгээд дахин дискүүд унасан - сервер дахин хөлдсөн. Adaptec-ийн дэмжлэгтэй холбоо барих нь ямар ч үр дүнд хүрээгүй - тэд гурван хянагчийг бүгдийг нь шалгаж, ямар ч асуудал олдсонгүй. Бид эх хавтанг сольж, платформыг бараг эхнээс нь сэргээв. Өчүүхэн ч эргэлзээ төрүүлсэн бүхнийг шинээр сольсон. Тэгээд асуудал дахин гарч ирэв. Мистикизм ба өөр юу ч биш.

Тэд диск бүрийг тус тусад нь шалгаж эхлэхэд асуудал санамсаргүйгээр шийдэгдсэн. Тодорхой ачааллын дор хөтчүүдийн аль нэг нь толгойгоо цохиж, SATA порт руу богино холболт үүссэн боловч дохиоллын дохио байхгүй байв. Үүний зэрэгцээ хянагч зарим дискийг харахаа больж, зөвхөн тэжээлийн эх үүсвэрийг дахин холбох үед л дахин таниж эхлэв. Ингэж нэг бүтэлгүй диск серверийн платформыг бүхэлд нь сүйрүүлсэн юм.

Дүгнэлт

Мэдээжийн хэрэг, энэ бол манай инженерүүдийн шийдсэн сонирхолтой нөхцөл байдлын багахан хэсэг юм. Зарим асуудлыг "барьж авахад" нэлээд хэцүү байдаг, ялангуяа алдаа гарсан тухай тэмдэглэл байхгүй үед. Гэхдээ ийм нөхцөл байдал нь инженерүүдийг серверийн төхөөрөмжийн дизайныг нарийвчлан ойлгоход түлхэц болж, асуудлыг шийдэх олон янзын шийдлийг олоход хүргэдэг.

Энэ бол манай практикт тохиолдсон инээдтэй тохиолдлууд юм.
Та алийг нь тааралдсан бэ? Сэтгэгдэлд тавтай морилно уу.



Бид уншихыг зөвлөж байна

Топ