Apache – Apache Software Foundation;
IIS – Microsoft mahsuloti hisoblanadi. Server operatsion tizimlariga o‘rnatilgan (Windows Server 2003, Windows Server 2008,..);
Nginx – ochiq veb server. Katta hajmdagi saytlar uchun;
Lighttpd– ochiq veb server;
Google Web Server– Google tomonidan ishlab chiqilgan veb server;
Cherokee – veb interfeys orqali boshqariladi;
Rootage– Java tilida yozilgan veb server;
THTTPD – oddiy, kichik hajmdagi, tez va xavfsiz veb server.
Apache va Nginx ("motor-x" deb nomlanadi) veb-server biznesining eng yaxshi o'yinchilari. Birgalikda ular veb-trafikning deyarli 50 foizini tashkil qiladi. Ikkala eng keng tarqalgan va ommabop ochiq manbali veb-serverlar bo'lib, ular umumiy maqsadga intilishadi - bu Windows va UNIX kabi zamonaviy operatsion tizimlar uchun turli xil muhitlarning ehtiyojlarini qondirish uchun turli xil ish yuklariga g'amxo'rlik qilish. Apache veb-server biznesida ma'lum nomga ega bo'lsa-da, Nginx juda ko'p veb-saytlarga ega va veb-trafikni boshqarish tezligi bilan to'lgan, orqaga qarab bo'lmaydi. To'g'ri, ikkala veb-serverni ham bir-birlari bilan almashtirish mumkin emas, ammo ularning ijobiy va salbiy tomonlariga ega.
Apache HTTP Server Apache Software Foundation homiyligida ishlab chiquvchilar konsortsiumi tomonidan ishlab chiqilgan va ishlaydigan ochiq manbali yuqori unumli veb-server dasturiy ta'minoti. Bu amaldagi HTTP standartlariga muvofiq mustahkam, xavfsiz va samarali tijorat darajasidagi veb-server yaratish uchun yaratilgan veb-hamkorlikdagi veb-server loyihasi. Bu Internet orqali HTTP veb-serverini va unga qo'shimcha hujjatlarni ishlab chiqish uchun butun dunyo bo'ylab joylashgan ochiq ko'ngillilar jamoasi tomonidan boshqariladigan qo'shma loyiha. Apache 1995 yilda paydo bo'lganidan beri veb-serverlar bozorida etakchi o'rinni egallab kelmoqda.
Apache o'zining quvvatiga mosligi va ko'p platformali qo'llab-quvvatlashi tufayli server ma'murlari orasida birinchi bo'lib qolmoqda. Shunga qaramay, Apache deyarli barcha asosiy operatsion tizimlarda samarali ishlaydi, shu jumladan Windows, Linux, UNIX, OSX va NetWare, odatda Linux bilan birgalikda ishlatiladi. Uning me'moriy soddaligi va moslashuvchanligi uni ma'murlar orasida mashhur tanlovga aylantirdi, chunki dastlabki jamoalarda innovatsiyalar va yangi texnologiyalar bilan tajriba o'tkazish uchun ma'lum chanqoqlik bor edi va Apache uning markazida edi. Apache Butunjahon Internet tarmog'ining asosiga aylandi. Ammo bu shunday. Qadimgi so'zlar bilan aytganda, siz tepada bo'lganingizda yagona yo'l pastga tushadi.
Windows operatsion tizimida ishlaydigan virtual serverda Go dasturlash tilini o'rnatish va sozlash bo'yicha ko'rsatmalar keltirib o’tamiz. Go - bu boshqa ob'ektga yo'naltirilgan tillardan juda farq qiladigan mashhur dasturlash tili. Go C / C ++ kabi yuqori unumdorlikni, Java kabi super-samarali parallelizmni va Python / Perl kabi yoqimli kod tuzilishini ta'minlaydi.
Goda juda ko'p kutubxonalar mavjud bo’lib, u universaldir: xususan, uning yordami bilan server dasturlarini muammosiz ishlab chiqish mumkin.
Gi quyidagi xususiyatlarga ega:
HTTPS uchun Let shifrlashdan foydalanish.
API router sifatida ishlash.
Middleware bilan ishlash.
Statik fayllarni qayta ishlash.
Ishni samarali yakunlash.
Go-da veb-server yaratish juda tez va oson. Misol uchun:
package main
import (
"fmt"
"net/http"
)
func main() {
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { fmt.Fprintf(w, "Hello World!")
}) http.ListenAndServe(":80", nil)
}
Shundan so'ng, agar siz dasturni ishga tushirsangiz va localhost sahifasini ochsangiz, darhol "Salom, dunyo!" degan yozuvni ko'rasiz. (albatta, agar hamma narsa to'g'ri ishlayotgan bo'lsa). Keyinchalik, qayta-qayta ishlov beruvchidan foydalanamiz, lekin avval hamma narsa qanday ishlashini tushunaylik. Misollardan ikkala server va HTTP mijozlarini rivojlantirish uchun Go vositasida asosiy vosita bo'lgan net / http to'plami ishlatilgan. Kodni tushunish uchun uchta muhim elementning ma'nosini ko'rib chiqaylik:
http.Handler;
http.ServeMux;
http.Server.
Biz so'rov olganimizda, ishlov beruvchi uni tahlil qiladi va javobni shakllantiradi. Ishlov berish vositalari quyidagicha amalga oshiriladi:
type Handler interface {
ServeHTTP(ResponseWriter, *Request)
}
Birinchi misol http.HandleFunc yordamchi funktsiyasidan foydalanadi. U boshqa funktsiyani o’giradi, bu esa o'z navbatida ServeHTTP-da http.ResponseWriter va http.Request-ni qabul qiladi.
Boshqacha qilib aytganda, Golang ishlov beruvchilari dasturchi uchun ko'plab imkoniyatlarni taqdim etadigan bitta interfeys bilan namoyish etiladi. Shunday qilib, masalan, middleware ishlov berish vositasi yordamida amalga oshiriladi, bu erda birinchi navbatda ServeHTTP biror narsa qiladi, so'ngra boshqa ishlov beruvchining ServeHTTP usulini chaqiradi.
So’rovlarni marshrutlash. To'g'ri tanlovni amalga oshirish uchun HTTP multiplexeridan foydalanish tavsiya etiladi. U bir qator kutubxonalarda muxer yoki router deb nomlanadi, ammo barchasi bir xil. Multiplekserning vazifasi so'rov yo'lini tahlil qilish va tegishli ishlov beruvchini tanlashdir.
Agar siz kompleks marshrutlashni qo'llab-quvvatlashga muhtoj bo'lsangiz, unda uchinchi tomon kutubxonalaridan foydalanish yaxshiroqdir. Eng zamonaviylaridan biri gorilla / mux va go-chi / chi bo'lib, ushbu kutubxonalar hech qanday muammosiz ishlov berishni amalga oshirishga imkon beradi. Ularning yordami bilan siz wildcard marshrutlashni sozlashingiz va boshqa bir qator vazifalarni bajarishingiz mumkin.
Oddiy vaziyatda murakkab freymvorklar bilan ishlash juda oddiy, standart yechimlarni talab qilmaydi va bu standart ishlov beruvchilardan foydalanishni ancha qiyinlashtiradi. Ilovalarning aksariyatini yaratish uchun standart kutubxona va oddiy yo'riqnoma kombinatsiyasi kifoya qiladi.
Do'stlaringiz bilan baham: |