زمانی که صحبت از Web Server میشود، ذهن همه ما به سمت عملکرد وبسایتها میرود! اما وب سرور چیست و چه ارتباطی با سایتها دارد؟ برای پاسخ به این سؤال باید گفت تقریباً همه ما در طول روز از فضای وب جهت دانلود یا آپلود اطلاعات استفاده زیادی میکنیم.
برای استفاده از این سایتها به نرمافزار و سختافزارهای مختلفی نیاز است که یکی از این نرمافزارها، وب سرور است. Web Server در کنار زیرساختهایی همچون دامنه، هاست و پروتکلهای امنیتی به کاربران کمک میکند تا به سایت مدنظرشان دست پیدا کنند. درخواستها توسط مرورگر به سمت سرورها منتقل میشوند؛ به عبارتی میتوان گفت رایجترین کلاینتها در فضای وب، مرورگرها هستند.
پروتکل مورد استفادهٔ وب سرور چیست؟
اگر بخواهیم بررسی تخصصیتری از وب سرورها ارائه دهیم، باید گفت Web Server برنامهای است که از پروتکل HTTP استفاده میکند. اگر با مفاهیم شبکه آشنایی داشته باشید، بی شک میدانید که پروتکل HTTP جهت آپلود و دانلود فایلها در بستر وب است. البته امروزه بیشتر از پروتکل HTTPS استفاده میشود، چرا که این پروتکل رمزنگاری شده و امنیت بیشتری دارد. تقاضاهای HTTP توسط کامپیوتر افراد ارسال شده و وبسرورها میرسد. درنتیجه وبسرور به تقاضاهای HTTP کاربران پاسخ میدهد.
Web Server را از لحاظ سختافزاری میتوان به یک رایانه تشبیه کرد که نرمافزارهای Web Server، فایلهای جاوا اسکریپت، تصاویر و… ذخیره میکند. از لحاظ نرمافزاری نیز Web Server همانطور که گفتیم شامل یک سرور HTTP است که چگونگی دسترسی کاربران را به فایلهای روی هاست مدیریت میکند.
وب سرور استاتیک و داینامیک چیست؟
در ادامه مباحث وب سرور، به مفاهیم جدیدتری نظیر وب سرور استاتیک و داینامیک میرسیم. اما منظور از این دو عبارت چیست؟ برای پاسخ به این سؤال باید گفت برای انتشار یک وبسایت نیازمند یک Web Server استاتیک یا داینامیک هستیم. وب سرور استاتیک شامل یک کامپیوتر و به همراه سرور HTTP است که آن را استاتیک مینامیم. در وب سرور استاتیک فایلهای میزبانی شده همان گونه هستند که به مرورگرها ارسال میشوند. به عبارتی میتوان گفت در این نوع وب سرورها مسیر و جهات انتقال فایلها نیز به صورت دستی انجام میشود. یعنی برای سرور مشخص میشود که اطلاعات را به چه صورت منتقل کند.
اما وب سرور داینامیک علاوه بر یک سرور استاتیک، شامل نرمافزارهای اضافی نیز است که به مجموع آنها وب سرور داینامیک گفته میشود. به عبارتی هاستی که بر روی سرور داینامیک است، علاوه بر وب سرور استاتیک، شامل وب سرور داینامیک و نرمافزارهای اضافی دیگری نیز میباشد که فایلهای میزبانی شده را قبل از فرستادن به مرورگرها، از طریق سرور HTTP بهروز میکنند.
وب سرورها چگونه کار میکنند؟
اکنون که با وب سرور آشنا شدیم، بد نیست بررسی کوتاهی از نحوه عملکرد وب سرور داشته باشیم. برای بیان دقیق شیوه عملکرد وب سرور، لازم است نیمنگاهی به فرایند انتقال اطلاعات بین وب سرور و مرورگر داشته باشیم. بهطور مثال فرض کنید در نوار جستجوی مرورگر، آدرس www.amazon.com را وارد میکنید. بعد از واردکردن و سرچ این آدرس، درخواست دریافت اطلاعات به دامنه سایت آمازون ارسال شده و شما میتوانید صفحه این سایت را در دسترس داشته باشید. در مرحله بعدی، درخواست کاربران به DNS Server منتقل میشود تا آیپی سرور سایت دریافت شده و اطلاعات مورد نیاز کاربران در دسترس آنها قرار گیرد.
در این باره لازم به ذکر است که هر سایتی IP منحصر به فردی دارد که تنها از طریق این آیپی میتوان به سرور سایت دسترسی پیدا کرد. بهطورکلی باید گفت درخواست کاربر از این طریق به Web Server میرسد و اگر وب سرور نتواند صفحه موردنظر را به کاربر نمایش دهد، ارور 404 ارسال میشود.
انواع وب سرور
درباره وب سرور باید گفت که انواع مختلفی از این سرورها در دسترس است که توسط شرکتهای مختلف ارائه میشوند. هر وبسایت از کاربرد و نیازهای مختلفی برخوردار است که لازم است متناسب با این نیازها از وب سرور خصوصی استفاده کند. به طور کلی اصلیترین وب سرورها عبارتاند از:
وب سرور Apache
یکی از معروفترین وب سرورها، وب سرور Apache است که توسط شرکت نرمافزاری Apache توسعه داده شده است. این سرور منبعباز است که به همین دلیل تقریباً تمامی سیستمعامل نظیر Linux، Windows، Mac و غیره از آن پشتیبانی میکنند. به طور تقریبی میتوان گفت ۶۰ درصد ماشینها از وب سرور Apache استفاده میکنند. ازآنجاییکه این سرور دارای ساختار ساده و مدولار است، بهراحتی میتوانید آن را مطابق با نیازتان سفارشیسازی کنید. همچنین همانطور که اشاره کردیم این وب سرور منبعباز است، بهطوریکه میتوانید اصلاحاتی را متناسب با نیازتان به آن اضافه کنید. ازجمله مهمترین ویژگیهای سرور Apache عبارتاند از:
- پشتیبانی کامل وب سرور آپاچی از زبانهای TCL, Python, Perl و PHP
- تعامل و کنترل ۱۰ هزار درخواست
- پشتیبانی از htaccess و پروتکل HTTP/2
- آمادهکردن ماژولهای متعدد برای تعامل بیشتر با آپاچی
- قابلیت محدودکردن کانکشنهای فعال
وب سرور IIS
یکی دیگر از معروفترین وب سرورها، وبسرور IIS است. این سرور محصول شرکت مایکروسافت است که تقریباً میتوان گفت تمامی ویژگیهای سرور Apache را عرضه میکند. اما ازآنجاییکه وبسرور IIS منبعباز نیست، شخصیسازی آن کمی دشوار است. از دیگر ویژگیهای منحصربهفرد این سرور، میتوان به پشتیبانی از تمامی پلتفرمهای سیستمعامل ویندوز اشاره کرد. بهطورکلی اصلیترین ویژگیهای سرور IIS به شرح زیر است:
- سازگاری با زبانهای برنامهنویسی ASP.net و Net. و زبان PHP
- برخورداری از ماژولهای متنوع و پشتیبانی از پروتکل WebSocket
- پشتیبانی کامل از پروتکلهای HTTP ،HTTPS ،FTP،FTPS، SMTP و NNTP
وب سرور Nginx
از دیگر وبسرورهای منبعباز، میتوان به وب سرور Nginx اشاره کرد. این سرور بعد از وب سرور Apache یکی دیگر از وبسرورهای منبعباز است که از پروکسی سرور IMAP/POP3 تشکیل شده است. Nginx برای پاسخ به تقاضاهای کاربران نیاز به هیچ رشتهای ندارد. این وب سرور اخیرا شهرت بسیار زیادی کسب و کرده و تا کنون توانسته میزبان ۷ درصد از تمامی دامنهها باشد. بهطورکلی اصلیترین ویژگیهای وب سرورNginx عبارتاند از:
- پایداری
- عملکرد بالا
- امکان فعالکردن بیش از ۱۰هزار اتصال فعال همزمان
- توانایی اجرای Load Balancing
- قابلیت فعالکردن بیش از ۱۰هزار اتصال فعال همزمان
- پشتیبانی از پروتکلهای IMAP, SMTP و POP3
وب سرور Apache Tomcat
Apache Tomcat از آنجایی که حاوی منبعباز جاوا سرولت است، بهصورت یک وب سرور عمل میکند. اما جاوا سرولت چیست؟ جاوا سرولت یک برنامه جاوا است که قابلیتهای سرور را توسعه میبخشد. عملکرد جاوا سرولت بهگونهای است که میتواند به هر نوع تقاضایی پاسخ دهد اما معمولاً کاربردهای وبسرور را اجرا میکند. درباره Apache Tomcat باید گفت در اکثر مواقع در بین سرورهای برنامه کاربردی جاوا با منبعباز مانند JBoss, Glassfish, WildFly دستهبندی میشود.
Node.js
اگر با زبان برنامهنویسی جاوا اسکریپت آشنا باشید، بی شک با عبارت Node.js زیاد روبهرو شدهاید. از Node.js برای برنامههای کاربردی شبکه نظیر وبسرورها استفاده زیادی میشود. به عبارتی باید گفت Node.js یک محیط جاوا اکسریپتی است که از قابلیتهای مختلفی برخوردار است. این پلتفرم در سال ۲۰۰۹ توسط رایان دال نوشته شد که امروزه توانسته ۰.۲% از تمام وبسایتها را به خود اختصاص دهد. در این باره لازم به ذکر است که هاست Node.js با وبسرورهای دیگر متفاوت است، زیرا این سرور محیطی برای اجرای کراس پلتفرم ساخت برنامههای شبکه است.
وب سرور Lighttpd
از دیگر وب سرورهای محبوب، میتوان به وبسرور Lighttpd اشاره کرد. این وب سرور در ابتدا در مارس سال ۲۰۰۳ منتشر شد که تا کنون توانسته ۰.۱% از تمامی وبسایتها را به خود اختصاص دهد. وبسرور Lighttpd به دلیل بار کم CPU، از سرعت فوقالعادهای برخوردار است که برای راهاندازی وبسایتهای کوچک بهترین گزینه است. درباره این وب سرور، همچنین باید گفت که از یک معماری رویداد محور استفاده و از ویژگیهای مختلفی نظیر FastCGI، Auth، Output-compression، SCGI، URL-Rewriting بهخوبی پشتیبانی میکند.
انواع دیگری از سرورها
همانطور که مطالعه کردید، تا اینجا به بررسی شش مورد از محبوبترین وب سرورها پرداختیم. اما علاوه بر اینها، سرورهای دیگری نیز وجود دارد که برای آشنایی بیشتر شما، قصد داریم نیمنگاهی به آنها بیندازیم.
اپلیکیشن سرور
احتمالا نام اپلیکیشن سرور را زیاد شنیدهاید، اما شاید با عملکرد آن آشنا نباشید. درباره اپلیکیشن سرور بد نیست بدانید که بهصورت مجموعهای از اجزا عمل میکند، به طوری که توسعهدهندگان نرمافزار از طریق API که بهوسیله خود اپلیکیشن سرور معرفی شده، آن را پردازش میکنند. از اپلیکیشن سرور جهت مدیریت و اجرای وب اپلیکیشنها استفاده میشود چرا که محیطی مشابه با Web Server را ارائه میدهد.
میل سرور
برای ذخیرهسازی و اشتراک اسناد مختلف از میل سرورها استفاده میشود. بهطورکلی در یک میل سرور یک فضای دیسک از درون قفل شده وجود دارد که جهت ذخیرهسازی و اشتراک اسناد از آن استفاده میکنند.
سرور پایگاهداده
سرور پایگاهداده درواقع کامپیوتری است که خدمات پایگاهداده را بهواسطه برنامههای کامپیوتری مختلف به کامپیوترهای دیگر منتقل میکند. میتوان گفت: سرور پایگاهداده از طریق ” فرانتاند ” در کامپیوتر اجرا و از طریق ” بکاند ” اطلاعات را تحلیل و ذخیرهسازی میکند.
مفهوم محدودیت بار در وب سرور
منظور از محدودیت بار در وبسرور چیست؟ یکی دیگر از مباحثی که در زمینه وبسرورها الزامی است مطرح شود، محدودیت بار این سرورها است. اگر در زمینههاست و سرور سرچ کوتاهی داشته باشید، با عبارت ” محدودیت بار وبسرورها ” زیاد روبه رو می شوید. در واقع وب سرورها دارای محدودیت بار مشخصی هستند، به طوری که این محدودیت بین ۲ تا ۸۰۰۰۰ درخواست است، و معمولا اکثر وبسرورها می توانند به طور پیشفرض بین ۵۰۰ تا ۱۰۰۰ درخواست را در لحظه مدیریت کنند.
اما به طور کلی تعداد باری که هر وبسایت میتواند تحمل کند به عواملی همچون تنظیمات درونی وب سرور، نوع درخواست از سرور، استاتیک یا داینامیک بودن سایت، محدودیتهای سختافزاری و نرمافزاری و… بستگی دارد. اگر درخواستهای ارسال شده بیش از اندازه باشد، وبسرور نمیتواند به این درخواستها پاسخ دهد و به حالت Overload درمیآید که این حالت نشئتگرفته از دلایل زیر است.
- حملات DDOS که ترافیک سنگینی را بر روی وب سرور میاندازد.
- رباتهای اینترنتی که باعث اختلال در عملکرد وب سرور میشوند.
- درخواستهای بسیار زیاد در بازه زمانی کوتاه.
- خرابی سرور.
سهم هر وب سرور از بازار چقدر است؟
همانطور که اشاره کردیم، هر وب سرور برای برطرف کردن نیاز خاصی است که به همین دلیل وب سرور ها به انواع مختلفی تقسیم شدهاند و وبسایتها با توجه به نیازشان از این سرورها استفاده میکنند. در این میان اگر نیمنگاهی به آمار استفاده از وب سرورها داشته باشیم، باید گفت وب سرور Apache حدود ۴۴.۳ درصد از بازار وب سرور ها را به خود اختصاص داده است. وبسرور آپاچی در میان دیگر سرورها از محبوبیت و عملکرد بیشتری برخوردار است بهطوریکه بیشترین سهم استفاده متعلق به این سرور است. چرا که وبسرور Nginx تقریبا ۴۱ درصد و وب سرور IIS نیز ۸.۹ درصد را به خود اختصاص دادهاند.
جمعبندی
در این مقاله سعی کردیم پاسخ دقیقی برای سؤال وب سرور چیست ارائه دهیم. همچنین یادگرفتیم که Web Server ها در انواع مختلفی هستند که وبسایتها باتوجه به نیازشان از این وب سرور ها استفاده میکنند. در این مقاله متوجه شدیم که فرایند استفاده از Web Server ها در ارتباط با آدرس IP است. بهطوریکه این آدرس در رابطه با دامنه تعیین میشود. سپس آدرسی که در مرورگر دامنه توسط مخاطب وارد شده به وب سرور منتقل و بعد از بررسی توسط وب سرور، صفحه موردنظر کاربر در دسترس او قرار گرفته میشود.
در این مقاله همچنین یاد گرفتیم که هر وبسرور از محدودیت بار مشخصی برخوردار است، بهطوری که اگر ارسال درخواست هایش بیش از اندازه باشد، وب سرور توانایی مدیریت و پاسخ به این درخواستها را نداشته و به حالت Overload درمیآید.
0 Comments