Uncategorized

راه اندازی وب سرور شخصی

راه اندازی وب سرور شخصی

یک وب سرور در اصل نرم افزاری هست که مستمرا بر روی یک کامپیوتر در حال اجرا می باشد و به سایر کامپیوتر ها این اجازه را می دهد تا اسناد و سایر موارد موجود و مجاز را از روی آن دانلود نمایند.
مثلا همین متونی که شما در حال حاضر مشغول مطالعه آن هستید از شبکه ای از اتصالات مابین سرورهای میزبان آپدیت بلاگ تا مرورگر شما گذرکرده انند و بر روی مانیتورتان در مقابل شما قرار گرفته اند. نمی دانم شانس این را داشته اید تا مجموعه ای از وب سرورها را ببینید یا نه! ولی اکثر وب سرور ها کمی عظیم و مرموز به نظر می رسند و وقتی مجموعه ای از آنها را در کنار هم برای اولین بار ببینید حتی ممکن است از عظمتشان کمی بترسید، ضمن اینکه اکثرا اتاق هایی که تعدادی انبوه از وب سرورها در آن قرار دارند از طریق تدابیر ویژه دمایشان معمولا پائین تر از شرایط عادی است، اما همه ی اینها دلیل نمی شود که شما فقط یک مصرف کننده یا یک کاربر عادی در رابطه با وب سرورها باشید، اگر پیش نیازهای لازم در اختیارتان باشد می توانید یک وب سرور در اتاق خوابتان داشته باشید و گزینه راه اندازی وب سرور شخصی را تجربه کنید!!
هر چند مطمئن هستم در ایران ۹۵ درصد کسانی که این مقاله را می خوانند شانس انجام چنین کاری را ندارند ولی مطمئنا اگر فرد علاقه مندی هستید خواندن این پست حاوی مطالب و نکات آموزنده بسیاری برای شما خواهد بود.(پس کسانی که علاقه مند هستند به خواندن ادامه دهند سایر دوستان هم خداحافظشان
راه اندازی وب سرور خانگی یا اصطلاحا Home Server در کشور هایی که مردمش مثل مردم ما در دسترسی به اینترنت با هزار و یک مشکل مواجه نیستند و برای خریداری سرویسهای اینترنتی نه چندان مطلوب نبایستی قیمت های عجیب و غریبی پرداخت کنند بسیار امر ساده و متداولی است، و حتی خاطرم هست در جایی خواندم اولین سرور میزبان گوگل در اتاق خواب یکی از دو موسس آن یعنی لری پیج و سرگی برین بوده است. اما چرا چنین کاری در کشورهای پیشرفته متداول است؟ بعضی ها در خانه یک وب سرور شخصی راه اندازی میکنند چون نیاز دارند به فایلهای موجود بر روی کامپیوتر خانگی شان همیشه و از همه جا دسترسی داشته باشند، یا عده ای دیگر یک وب سرور شخصی دارند تا فایلهایی خاص را با سایر دوستان، آشنایان یا افراد پروژه ای که بر روی آن مشغول به کار هستند به اشتراک بگذارند و از همه مهم تر کسانی که اطلاعات فنی بالایی دارند و در برخی موارد ترجیح می دهند مثلا سایت یا وبلاگ ویا… خودشان را روی سرور شخصی خودشان در خانه اشان میزبانی کنند و یا مثلا بسیاری از کسانی که صاحب بیزنس های کوچک الکترونیکی هستند در خیلی از موارد از وب سرورهای شخصی و خانگی استفاده می کنند تا بتوانند سطوح امنیتی بالاتری برای مشتریانشان پدید آورند. در این پست قصد دارم به شما نشان دهیم که چطور می توانید یک وب سرور خانگی را خودتان بدون نیاز به هیچکسی راه اندازی نمائید و مثلا فایلهای MP۳ خود را از طریق آن با سایر افراد و دوستان و آشنایانی (که پسورد لازم و صحیح را در اختیار دارند) به اشتراک بگذارید.
البته لازم به ذکر است: پیاده سازی یک سرور خانگی کار ساده ای نیست و خطرات خاص خودش را داراست و لازم است برای امنیت خودتان و فایلهایتان حتما کامپیوتری را که می خواهید تبدیل به سرور کنید را با آخرین پیکیج ها و وصله های امنیتی به روز رسانی نمائید، و از آن مهم تر اینکه قبل از هر چیزی اطمینان حاصل کنید تا سیستم تان آلوده به ویروس یا هر نوع فایل مخرب دیگری نیست. حرف آخر هم اینکه این راهنما برای کسانی است که یک سری موارد پایه را راجع به شبکه و… میدانند و البته اگر قصد عملی کردنش را دارند بایستی این امکان را داشته باشند تا پورت ۸۰ را بر روی کامپیوترشان به منظور سرویس دهی به سایر کامپیوترهای موجود بر روی شبکه باز بگذارند.
● مواد لازم:
۱) یک PC تحت ویندوز
۲) یک خط دائم اینترنت (نوع ارتباط فرقی نمی کند DSL یا Cable و یا… اما سرعت و پهنای باندش شدیدا اهمیت دارد)
▪ گام اول
نصب Apache HTTP Server
قبل از هر چیز اینکه چرا Apache HTTP Server؟ از آنجایی که حداقل من یکی دارم کم کم خودم را به نرم افزارهای قانونی و غیر کرک شده عادت میدهم پس Apache یک گزینه ی خوب است، چون هم رایگان است هم پایداری و ثبات نسبتا بالایی داراست.
اما بپردازیم به کار اصلی مان، در ابتدا و قبل از هر چیزی، هر نوع فایروال و یا نرم افزار سرور دیگری که روی سیستم شما اجرا شده است را غیر فعال کنید، چیزهایی مثل فایروال ویندوز، Skype، Trillian یا هرانرم افزار IM دیگری. انجام اینکار بسیار مهم است زیرا اینگونه ابزارها در ادامه می تواند سبب ایجاد اشکال در مراحل نصب و راه اندازی سرور شوند و البته ناگفته نماند موارد مذکور می توانند مانند گذشته بعد از پایان عملیات نصب و راه اندازی سرور مورد استفاده قرار گیرند.
بعد از انجام موارد مذکور بایستی فایل نصاب Apache HTTP Server را دانلود نمائید، فایل مورد نظر برای نصب این نرم افزار را بایستی از این دایرکتوری (برای ویندوز) دانلود کنید، فایلی که من دانلود کردم نامش apache_۲.۲.۶-win۳۲-x۸۶-no_ssl.msi بود که فکر کنم فعلا آخرین نسخه برای نصب روی ویندوز است. بعد از دانلود مراحل نصب را از طریق اجرای فایل نصاب آغاز نمائید. توافق نامه ی نرم افزار را تائید نمائید و فراموش نکنید در حین انجام مراحل نصب محل نصب را همان پیش فرض خود نرم افزار یعنی:
C:Program FilesApache Software FoundationApache۲.۲
انتخاب کنید. وقتی به تصویر زیر در حین نصب کردن رسیدید (بعد از تائید توافقنامه) ابتدا آدرس ایمیل خودتان را در بخش مربوطه و بعد هم عبارت homeip.net را در بخش مرتبط به اطلاعات نام دامنه یا همان domain وارد کنید (فرقی ندارد چه نام دامنه یی اینجا می دهید من فقط برای سادگی قضیه این نام را داده ام)، مثل تصویر زیر:
بعد از وارد کردن این اطلاعات و زدن کلید next عملیات نصب را تا انتها با استفاده از گزینه ی Typical installation ادامه دهید. وقتی نصب تمام شد برای اطمینان حاصل پیدا کردن از موفقیت نصب، مروگر خود را باز کنید و در داخل نوار آدرس آن http://localhost را وارد کنید، اگر عبارت !it Works در مقابل شما ظاهر شد بدانید نصب وب سرور Apache بر روی سیستم شما به درستی صورت پذیرفته است و شما کارتان خیلی درست می باشد :-)! اما ممکن است بعضی از افراد در این مرحله با پیغام خطایی با این عنوان:
Only one usage of each socket address (protocol/network address/port) is normally permitted. : make_sock: could not bind to address ۰.۰.۰.۰:۸۰ no listening sockets available, shutting down. Unable to open logs;
مواجه شوند. این پیغام خطا یعنی یک برنامه ی سرور مشابه مثل Skype و یا… با Apache دچار تداخل شده است برای اینکه بدانید چه برنامه ای مزاحم کارتان شده Command Prompt را باز می کنید (توضیح واضحات: برای باز کردن Command Prompt گزینه ی Run درون start menu را انتخاب کنید و بعد دستور cmd را درش وارد کنید) و خط دستور netstat -a -o را وارد کنید، PID یا همان Process ID برنامه ای که بر روی سیستم شما در حال استفاده از پورت ۸۰ یا HTTP است را بیابید.
اکنون بروید سراغ Task Manager از منوی View گزینه ی Columns را انتخاب کنید و کنار عبارت PID تیک بزنید در آخر کار PID برنامه یی را که در بالا یافتید را در قسمت Process بیابید و آن را End کنید و بعد مجداد نصب Apache را امتحان کنید اینبار نباید مشکل خاصی باشد.
▪ گام دوم
تنظیم کردن Apache برای به اشتراک گذاری اسناد و فایل ها از فولدر مورد نظر.
خوب که خوب! 🙂 حالا برای مثال می خواهیم فایلهای موسیقی مورد نظرمان را از طریق وب سروری که خودمان قصد راه اندازی اش را داریم برای دیگران قابل دریافت یا قابل دانلود نمائیم. فرض ما بر این است همه ی فایلهایی که قصد داریم به اشتراک بگذاریم در فولدر C:My Music قرار گرفته اند. با استفاده از یک ویرایشگر متن مثل نت پد فایل httpd.conf را که در آدرس:
C:Program FilesApache Software FoundationApache۲.۲conf
قرار گرفته است را باز کنید. این فایل در اصل فایل تنظیمات Apache است که در نگاه اول به نظر مقداری طولانی و ترسناک میرسد، اما اکثر موارد پیش فرض در آن به درستی کار می کنند و فقط کافی است ما چند مورد خاص را تغییر دهیم.
در فایل httpd.conf خطی که با DocumentRoot آغاز می شود را بیابید در ابتدای آن یک علامت # اضافه کنید و بعد هم خط دیگری در زیرش باید وارد کنید و نتیجه کارتان باید چیزی شبیه به آنچه که در زیر آورده شده است باشد:
#DocumentRoot C:/Program Files/Apache Group/Apache۲/htdocs;
DocumentRoot ;C:/My Music;
سپس در همان فایل بگردید به دنبال عبارت <Directory C:/Program (از همین جا کپی پیستش کنید چون به علت راست به چپ بودن متن بر عکس نمایش داده شده است) در ابتدای این خط هم باز بایستی یک علامت # وارد کنید و بعد یک خط جدید در زیرش بنویسید، نتیجه ی کار باز بایستی مشابه این باشد:
#<Directory ;C:/Program Files/Apache Group/Apache۲/htdocs;>
<Directory ;C:/My Music;>
چیزی حدود ۲۰ خط پائین تر از عبارت بالا بایستی عبارتی دیگر با عنوان زیر بیابید.
AllowOverride None
و بعد آن را به شکل زیر تغییر دهید:
AllowOverride All
مراحل فوق را که گذراندید فایل httpd.conf را ذخیره کنید. روی آیکون Apache در Taskbar کلیک کنید و گزینه ی Restart را انتخاب نمائید اگر آپاچی Restart شد معنی و مفهومش این است که تنظیمات را به درستی انجام داده اید، حالا آمدیم و Restart نشد چه کنیم!؟ صد در صد یک اشتباه تایپی در کارتان است برگردید سراغ فایل httpd.conf و تنظیمات را از اول چک کنید ببینید کجا اشتباه کرده اید. در نهایت وقتی Apache به صورت موفقیت آمیز Restart شد بروید سراغ مرورگر گرامی و مجدد در نوار آدرسش http://localhost را وارد کنید، اینبار بایستی بتوانید لیستی از فایل های موسیقی موجود در داخل دایرکتوری My Music در درایو C را در مرورگرتان مشاهده کنید.
▪ گام سوم. ایجاد کلمه ی عبور برای دسترسی به اسناد موجود بر روی وب سرور
در شرایط بالا هر کسی می تواند به فایلهای موسیقی موجود بر روی سرور شما دسترسی داشته باشد و آنها را دانلود کند و اگر بخواهید این شرایط را حفظ کنید لازم است خط اینترنتی با پهنای باند خیلی خیلی بالا در اختیار داشته باشید، لذا می توانیم برای دسترسی افراد به فایلهای موجود روی سرورمان کلمه ی عبور یا همان پسورد تعریف کنیم.
برای تعریف کردن پسورد مجددا Command Prompt را باز می کنیم و آن را به دایرکتوری bin سرور Apache با تایپ آنچه در زیر آورده شده است هدایت می کنیم:
;C:Program FilesApache Software FoundationApache۲.۲in;
و سپس یک فایل پسورد می سازیم:
htpasswd -c ;C:Documents and Settingsmy_password_file.txt; reza
می توانید مسیری که برای ساخت فایل پسورد در بالا آورده شده است را تغییر دهید (فراموش نکنید فایل باید حتما در یکی از دایرکتوری های موجود در document root وب سرورتان قرار گیرد) و همینطور می توانید جای reza هر نام کاربری دیگری که می خواهید جایگزین کنید، بعد از تایپ خط مذکور از شما پسورد مورد نظرتان تقاضا می شود و بایستی آن را دو بار وارد کنید. با گذرندان این مراحل فایل حاوی رمز عبور که رمزنگاری و کد شده هم هست ساخته می شود.
اما اکنون وقتش رسیده این امکان را پدید آوریم تا افراد قادر باشند با داشتن نام کاربری و کلمه عبور بالا بتوانند به وب سرور شما لاگین کنند لذا در یک ویرایشگر متن ترجیحا نت پد یک فایل جدید باز کنید و آنچه در زیر آورده شده است را در آن وارد کنید:
AuthType Basic
AuthName ;This is a private area, please log in;
AuthUserFile ;c:Documents and Settingsmy_password_file.txt;
AuthGroupFile /dev/null
<Limit GET POST PUT>
require valid-user
</Limit>
اطمینان حاصل کنید در متون بالا بخش c:Documents and Settingsmy_password_file.txt را با مسیر فایل پسوردی که ساختید آدرس دهی کرده باشید سپس این فایل را با نام:
.htaccess
در DOCUMENT ROOT وب سرور خود که در اینجا C:My Music است در ذخیره کنید. (نقطه ی ابتدایی را نامگذاری فراموش نکنید)
نکته: اگر از نت پد برای ساخت این فایل استفاده می کنید در هنگام ذخیره سازی فایل نام آن را به صورت:
;.htaccess;
وارد کنید در این شرایط پسوند txt. از انتهای فایل حذف می شود، در صورت وجود پسوند مذکور پسورد و بخش لاگین شما کار نخواهند کرد.
حالا باز سراغ مروگر بروید و نوار آدرس http://localhost را وارد کنید اینار بایستی از شما نام کاربری و پسورد مطالبه شود و با وارد کردن نام کاربری و پسوردی که پیشتر تعریف کرده اید بایستی بتوانید به فایل های مورد نظرتان دسترسی پیدا کنید.
▪ گام چهارم
تبریک! وب سرور خانگی شما آماده است.
اگر در پشت فایروال و سایر موارد نباشید می توانید با وارد کردن آدرس IP کامپیوتر سرورتان در نوار آدرس مرورگر از سایر کامپیوتر ها به آن دسترسی داشته باشید. اگر هم IP خودتان را نمی دانید از مرورگر کامپیوتر وب سرورتان یک سری به سایت IP من چیست؟ بزنید تا از آن مطلع شوید بعد مثلا اگر IP شما عدد nn.nn.nnn.nnn بود بایستی آن را در نوار آدرس مرورگرتان به صورت http://nn.nn.nnn.nnn تایپ کنید تا به وب سرورتان دسترسی پیدا نمائید.
ـ پ.ن.۱: اگر هم در پشت فایروالی قرار دارید که مرتبط به خودتان است و پورتها را بلوکه کرده (مثلا یک wireless router) لازم است پورت ۸۰ را بر روی آن باز کنید و سپس آن را بر روی کامپیوترتان فوروارد کنید. خود این قضیه داستان مفصلی دارد که بعدا اگر فرصت و عمری باقی بود در موردش بحث خواهیم کرد.
ـ پ.ن.۲: می شود یک نام دامنه یا همان Domain هم به این وب سرور متصل کرد که این مبحث را هم به آینده موکول می کنیم. (همان عمری بود و این حرفا)
سرور

معرفی برترین وب سرورها

معرفی برترین وب سرورها

مقدمه

دانش در مورد وب سرور ها نیازی حیاتی برای یک مدیر سرور محسوب میشود، تا از بهترین گزینه جهت سرویس دهی و یا جایگزینی وب سرور در سرور عملیاتی استفاده نمایید. در این مقاله سعی بر این بوده که معرفی برترین وب سرورها معروف به همراه نمودار های بازدهی و … مورد برسی قرار گیرد. قطعا این مقاله برای شما پرکاربرد خواهد بود و مطالعه ان توصیه میشود. با مطالعه این مقاله یا مقالات مشابه درک شما از عملکرد وب سرور افزایش خواهد یافت. توجه داشته باشید این مقاله به اموزش، نصب و کانفیگ نپرداخته و فقط عملکرد و قابلیت های وب سرور ها مورد برسی قرار خواهد گرفت.

معرفی برترین وب سرورها

وب سرور چیست ؟

وب سرور برنامه ای است که از HTTP یا همان پروتوکل انتقال ابرمتن (Hypertext Transfer Protocol) جهت ارائه صفحات وب به کاربر استفاده میکند. اطلاعات ارائه شده توسط کلاینت در سیستم کاربر که به زبان ساده همان مرورگرها هستند ترجمه شده و برای کاربر نمایش داده میشود. ممکن است به Server ها و نرم افزار های سرویس دهنده نیز وب سرور گفته شود که در این مقاله منظور از وب سرور سرویس دهنده HTTP میباشد.

معرفی برترین وب سرورها

تمامی میزبانان وبسایت ها باید از وب سرور جهت ارائه سرویس استفاده کنند، از این رو باید یکی از وب سرور های Apache [یکی از پر استفاده ترین وب سرور ها] IIS [Microsoft’s Internet Information Server], Nginx, GWS, lighttpd, LiteSpeed و… را جهت ارائه سرویس انتخاب نمایند.
معمولا وب سرور ها در کنار پکیجی از پروتکل ها و سرویس ها مانند سرویس های SMTP,FTP و… اقدام به سرویس دهی میکنند.قبل از انتخاب نوع وب سرور باید نوع سرویسی که قرار است روی سرور ارائه شود بطور کامل مشخص شود تا با توجه به نیاز خود وب سرور را انتخاب نمایید. توجه داشته باشید انتخاب اشتباه ممکن است در سرور های Critical Mission موجب قطع سرویس دهی گردد، هرچند در سرور های Low priority تغییر نوع وب سرور مشکل خاصی ایجاد نخواهد کرد. علاوه بر موارد ذکر شده انتخاب وب سرور گاها به پلتفرم سیستم عامل، امنیت و زبان برنامه نویسی استفاده شده نیز مرتبط میباشد.

معرفی وب سرور ها

Apache : آپاچی یکی از پر استفاده ترین وب سرور های دنیا میباشد. اپاچی در سال 1995 منتشر شد و پایداری و قدرت آن باعث شد تا نقشی کلیدی در دنیای WWW ایفا کند.[World Wide Web] پس از انتشار، محبوبیت اپاچی روز به روز افزایش یافت بصورتی که در سال 2009 حدود 100 میلیون وبسایت توسط آپاچی سرو می شد. در گذشته نیز همانند حال apache بر روی سیستم عامل های خانواده unix (بیشتر لینوکس) برای سرویس دهی نصب میشد، هرچند این وب سرور میتواند روی سرور های ویندوزی نیز سرویس دهی نمایید. در ویندوز اغلب developer ها و برنامه نویس ها جهت اجرا و کامپایل کد خود از اپاچی استفاده میکنند. با افتخار اپاچی یک وب سرور متن باز میباشد که همین امر باعث توسعه روز افزون ان شده است. نام apache برگرفته از نام یکی از قبیله های بومی آمریکاست که در استراتژی و جنگ مهارت بالایی داشتند.

معرفی برترین وب سرورها

آپاچی دارای امکانات زیادی میباشد که بسیاری از انها با کامپایل شدن به این وب سرور اضافه خواهد شد که قابلیت های core این وب سرور را بشدت افزایش میدهد. دامنه این گسترش میتواند از تعدد زبان های برنامه نویسی تا ماژول های احراز هویت و … باشد. از زبان های برنامه نویسی پر استفاده میتوان به Perl، Python، TCL و PHP اشاره کرد. ماژول های احرازهویت نیز شامل mod_access، mod_auth، mod_digest و mod_auth_digest میباشد. از دیگر نمونه ماژول های این وب سرور میتوان به Secure Socket Layer و Transport Layer Security یعنی mod_ssl، ماژول پروکسی mod_proxy، ماژول بازنویسی آدرس ها mod_rewrite اشاره کرد. ماژول های زیادی برای این وب سرور منتشر شده است که امکانت کنترل و اعمال محدودیت های بسیاری را به شما میدهد. ماژول های ذکر شده جزو ماژول های داخلی apache هستند که معمولا به همراه ان نصب و کامپایل خواهند شد.

امکانات HTTP proxy و Web server :

  • لود و استفاده از ماژول ها بصورت پویا
  • ماژول پردازش چندگانه درخواست ها [MPM]
  • بسیار مقیاس پذیر(براحتی 10000 اتصال را بصورت همزمان هندل میکند)
  • هندل کردن فایل های static و فایل های index
  • پشتیبانی از htaccess
  • پروکسی معکوس به همراه کش
  • مکانیزم Load Balancing بصورت همزمان
  • قابلیت Fault Tolerance و Failover به همراه بازیابی خودکار
  • WebSocket, FastCGI, SCGI, AJP و uWSGI به همراه پشتیبانی از کش
  • تنظیمات پویا
  • قابلیت TLS/SSL با SNI  و پشتیبانی از OCSP stapling با استفاده از OpenSSL
  • پشتیبانی از IPV6
  • پشتیبانی از پروتکل HTTP/2
  • پشتیبانی از gzip
  • پشتیبانی از URL Rewriting
  • پشتیبانی از بازنویسی هدر ها و محتوا
  • اعمال محدودیت در کانکشن های فعال
  • محدودیت در تعداد درخواست های پردازش
  • اعمال محدودیت در پهنای باند
  • ردگیری Session و کاربر
  • WebDAV
  • پشتیبانی از perl و PHP به همراه اسکریپت های Lua
  • پشتیبانی از CGI
  • پوشه public_html برای هر کاربر
  • پشتیبان از XML

 

معرفی برخی از ماژول های توسعه یافته معروف به اختصار :

  • mod_rewrite : جهت تغییر در URL و دریافت کد response مربوط به HTTP استفاده می شود.
  • mod_deflate : محتوا و فایل ها را قبل از ارسال به مرورگر توسط gzip فشرده میکند و فایل های فشرده شده بصورت اتوماتیک توسط مرورگر از حالت فشرده خرج میشود.
  • mod_security : این ماژول به شما این قابلیت را میدهد که محتوا را از بر اساس post data ، ادرس URL و یا هرچیزی که در request ارسالی وجود دارد بلاک نمایید.
  • mod_speling : با این ماژول میتوانید حروف درون URL ها را برسی نمایید.(بر خلاف ویندوز لینوکس روی بزرگی و کوچکی حروف در URL حساس میباشد)
  • mod_cache : برای کش کردن فایل ها روی مموری و یا هارد دیسک استفاده میشود.
  • mod_setenvif : جهت بکارگرفتن متغیر برای شرایط و محیط های مختلف میباشد بطور مثل اگر مرورگر firefox بود Action مورد نظر را انجاد دهد.
  • mod_auth : جهت اعتبار سنجی و یا احرازهویت استفاده میشود.
  • mod_ssl : با این ماژول میتوانید از HTTPS استفاده نمایید.
  • mod_bwlimited : کنترل پهنای باند، سرعت، تعداد کانکشن با استفاده از این ماژول امکانپذیر میباشد.

همانطور که عرض شد برای apache ماژول های بسیاری منتظر شده که در آینده به اختصار پر کاربردترین module ها در پست جدید معرفی و آموزش داده خواهد شد.

عملکرد و بازدهی :

بجای اجرای یک معماری تک پردازشی، آپاچی مازول های چند پردازشی [MultiProcessing Modules – MPMs] متنوعی را ارائه کرده است، که آن را قادر میسازد تا در مدهای Process-based, hybrid و event-hybrid سرویس دهی نمایید.( مدهای آپاچی در یک پست جدید بطور کامل معرفی خواهد شد)
با این تفاسیر پیداست برسی و انتخاب مد کاری اپاچی با توجه به هندل کردن request های بیشتر در زمان معقول مهم میباشد. در تحویل محتوای Static اپاچی 2.2 بطور قابل ملاحظه ای کندتر از وب سرور Nginx و varnish عمل میکند. برای رفع این مشکل Event MPM را تولید کردند که از ترکیب پردازش ها و thread های متعدد برای هر پردازش برای مد event-based بصورت غیر همزمان استفاده میکند. در نوع معماری و نوع پیاده سازی آن در اپاچی 2.4 عرضه شد تا performance بهتری را در این ورژن به شاهد باشیم، هرچند در benchmark هنوز هم سرعت پاسخ به درخواست های static نصف وب سرور nginx است.برای سرویس دهی اپاچی فقط به HTTP محدود نبوده و محصولات بسیاری را جهت سرویس دهی تولید کرده است مانند پاسخ دهی به نرم افزار های جاوا و big data و… که جدا از سرویس HTTP میباشد.

Nginx : وب سرور Nginx رایگان بوده و بصورت OpenSource عرضه شده است. این وب سرور در حال حاضر توسط پلتفرم های unix, windows و mac پشتیبانی میشود. حدود 12 درصد از سایت های موجود از این وب سرور استفاده میکنند. این پروژه در سال ۲۰۰۱ شروع بکار کرد و توسط یک توسعه‌دهنده به نام ایگور سیسووف به مرحله اجرا درآمد تا در یکی از وب‌سایت‌های پرترافیک به نام رامبرلر عملیاتی شود. این وب‌سایت در سال ۲۰۰۸، روزانه بیش از ۵۰۰ میلیون درخواست HTTP داشته است.

معرفی برترین وب سرورها

nginx میتواند طوری عملیاتی شود که محتوای dynamic مربوط به HTTP را با استفاده از FastCGI، برای اسکریپت از SCGI و برای برنامه های تحت سرور از WSGI استفاده نمایید. از این وب سرور نیز میتوان به عنوام نرم افزار Load Balancer استفاده کرد. nginx از رویش asynchronous event-driven استفاده میکند تا request ها را پاسخ دهد، این نوع معماری باعث میشود تا لود سرور در زمان High Load شدن قابل پیش بینی باشد.

امکانات HTTP proxy و Web server :

  • هندل کردن بیش از 10000 کانکشن همزمان با کمترین میزان مصرف حافظه (2.5 مگابایت برای 10000 اتصال HTTP)
  • هندل کردن فایل های static
  • Reverse Proxy با استفاده از Caching
  • پیاده سازی Load Balancing
  • قابلیت Fault tolerance
  • قابلیت TLS/SSL با SNI  و پشتیبانی از OCSP stapling با استفاده از OpenSSL
  • Fast CGI, SCGI و uWSGI با پشتیبانی از chaching
  • سازگاری با IPV6
  • پشتیبانی از پروتکل HTTP/2
  • WebSockets و HTTP/1.1 اپگرید شده است.
  • قابلیت Streaming برای فرمت های FLV و MP4
  • اعتبار سنجی روی Webpage ها
  • قابلیت فعال سازی gzip
  • امکان URL rewriting
  • اعمال محدودیت روی connection ها
  • اعمال محدودیت تعداد پردازش ها
  • کنترل پهنای باند
  • کنترل بر اسال محدوده IP
  • ردگیری کاربران
  • پشتیبانی از زبان اسکریپتی Perl
  • فایروال برنامه های تحت وب با استفاده از ماژول Naxsi
  • پشتیبانی از SMTP, POP3 و IMAP
  • بهره گیری از تعداد زباده ماژول های third party

مفسر htaccess در این وب سرور پشتیبانی نمیشود. هرچند در دید اول این مورد نقص یا کمبود به نظر میرسد اما این مورد به دلایلی که در مقلات بعدی ذکر خواهیم کرد باعث افزار سرعت شده و کارایی وب سرور را افزایش خواهد داد.

معرفی برخی از ماژول های توسعه یافته معروف به اختصار :

  • Accept Language Module : دریافت زبان بصورت هدر parser
  • Audio Track for HTTP Live Streaming : تولید ترک صوتی برای پخش زنده صوت [HLS]
  • HTTP Drizzle : ارتباط مستقیم با MySQL
  • Upstream Fair Balancer : توضیع request های دریافت شده روی خلوت ترین سرور
  • Limit Upstream Connection : محدود کردن connection ها برای هر سرور روی Upstream
  • MP4 Streaming Lite : نمایش فایل تصویری H.264/MP4 با زمان مشخص شده به همراه پارامتر Start در Url
  • Naxsi : فایروال برای برنامه های تحت وب
  • nginx-ip-blocker : یک مسدود کننده IP کاربردی در حافظه اشتراکی
  • Notice : یک سرو کننده فایل های Static به درخواست های POST
  • PageSpeed : بازنویس مجدد صفحات وب جهت کاهش Latency در پاسخ و کاهش مصرف پهنای باند
  • HTTP Redis : ماژول پشتیبانی از Redis
  • Secure Download : تولید لینک دانلود با تاریخ انقضا
  • NGINX Upload Progress Moduled : ردگیری و گزارش مراحل آپلود
  • و …

 

Lighttpd : سریع، امن و سازگار با محیط های مختلف 3 کلمه کلیدی برای معرفی lighttpd میباشد. این وب سرور برای سرویس دهی در شرایط High Load و High Performance طراحی شده است. طبق تعاریف در سایت lighttpd این وبسرور در میان دیگر وب سرور ها کمترین میزان مصرف رم را به خود اختصاص داده است.امکانات پیشرفته ان نظیر FastCGI, CGI, Auth, Output-Compression, URL-Rewriting و … باعث شده تا این وب سرور یک انتخاب عالی برای سرور های High Load باشد.

معرفی برترین وب سرورها

این وب سرور در گذشته توسط دو وبسایت YouTobe و Meebo استفاده می شد. برخی از ماژول های اپاچی نیز در این وب سرور قابل استفاده میباشد.

 

امکانات و قابلیت ها :

  • قابلیت پیاده سازی Load Balancing روی FastCGI و SCGI همچنین پشتیبانی از HTTP Proxy
  • پشتیبانی از chroot
  • مکانیزم برسی رویداد های وب سرور
  • پشتیبانی از URL Rewriting
  • پشتیبانی از پروکل های امنیتی مانند openssl و TLS/SSL
  • اعتبار سنجی مقابل سرور های LDAP
  • ابزار اماری RRDtool
  • پشتیبانی از Virtual host
  • پشتیبانی از ماژول ها
  • پشتیبانی از حالت مینیمال WebDAV
  • پشتیبانی از Servlet (AJP)
  • پشتیبانی از فشرده سازی و در ورژن های جدیدتر نیز Mod_deflate نیز پشتیبانی میشود.
  • بسیار کم حجم (کمتر از 1 مگابایت)
  • طراحی شده بصورت تک پردازشی به همراه چند thread

 

معرفی برخی از ماژول های توسعه یافته معروف به اختصار :

  • mod_webdav :  پشتیبانی از webdav
  • mod_compress : پشتیبانی از فشرده سازی جهت کاهش لود و افزایش سرعت
  • mod_evasive : ماژول جلوگیری از DDos
  • mod_fastcgi : ماژول FastCGI
  • mod_redirect : جهت redirect کردن url استفاده میشود.
  • mod_rrdtool : امار وضعیت وضعیت سرور و شبکه
  • mod_secdownload : اعتبار سنجی کاربر جهت استفاده از لینک دانلود
  • mod_userdir : پشتیبانی از public_html برای هر یوزر
  • mod_flv_streaming : پخش فایل های flv بصورت زنده
  • و …

ماژول های دیگری نیز برای این وب سرور در دسترس میباشد که با جستجو در اینترنت قابل دسترسی میباشد.

LiteSpeed : این وب سرور توسط 2% از وب سایت های جهان در حال استفاده میباشد. لایت اسپید بصورت تخصصی برای سایت های پربازدید طراحی شده و تجربه شخصی بنده هم در این خصوص این مورد را به من ثابت کرده است. زمانی که شما از اپاچی به لایت اسپید وب سرور را سوییچ میکنید لود سرور به 1/3 کاهش میابد! البته این مورد به شرابط و نوع سرویس دهی وب سایت شما نیز بستگی خواهد داشت. هرچند لایت اسپید بصورت free نیز قابل استفاده میباشد اما برای داشتن performance بهتر باید لایسنس ان را تهیه نمایید. پرداخت هزینه برای لایسنس زمانی توجیح مالی پیدا میکند که از هزینه های سمت سرور و شبکه شما کاسته شود.

معرفی برترین وب سرورها

LSWS با اپاچی سازگار است، به این معنی که تقریبا اکثر قابلیت های اپاچی مانند htaccess, Mod Security و Mod Rewrite را پشتیبانی میکند. لایت اسپید در سال 2016 جایگاه چهارم را در بیین وب سرور های در حال استفاده به خود اختصاص داده است و ممکن است علت این جایگاه این باشد که این وب سرور هزینه استفاده داشته و تقریبا رایگان نمیباشد. از دیگر نقاط مثبت ان میتوان به کاهش هزینه نگه داری و خریداری سخت افزار، امنیت . پایداری و performance بالا نام برد.

معرفی برخی از ماژول های توسعه یافته معروف به اختصار :

  • Cache : فعال سازی کش
  • Lua پشتیبانی از Lua
  • PageSpeed : ماژول افزایش سرعت
  • Registering : ماژول register

Internet Information Services :  یک وب سرور که بصورت کامل با ویندوز سازگار بوده و فقط هم روی همین پلتفرم قابل استفاده میباشد. IIS پروتکل های HTTP, HTTPS, FTP, FTPS, SMTP  و NNTP را پشتیبانی میکند. IIS به عنوان سرویس همراه ویندوز های سرور ارائه شده و به عنوان یک وب سرور رایگان محسوب نمی گردد. اخرین نسخه IIS در زمان تعلیف این مقاله نسخه 10 میباشد که به همراه ویندوز سرور 2016 و ویندوز 10 ارائه شده است. IIS از زبان های خوانواده .Net و ASP.net و دیگر زبان ها نظیر PHP پشتیبانی میکند.

معرفی برترین وب سرورها

امکانات و قابلیت ها :

  • IIS از مکانیزم های متعدد احراز هویت نظیر Anonymous authentication, Basic access authentication, Digest access authentication, Integrated Windows Authentication, UNC authentication و  NET Passport Authentication پشتیبانی میکند.
  • پشتیبانی از انواع مازول های امنیتی مانند فیلتر کردن درخواست ها و اجرای اعتبار سنجی روی URL ها و ..
  • پشتیبانی از فشرده سازی
  • ماژول های مربوط به کش
  • ماژول های لاگین
  • پشتیبانی از ASP.net 4.5 در کنار ASP.net 3.5
  • پشتیبانی از پروتکل WebSocket
  • پشتیبانی از SNI
  • کنترل مصرف CPU به ازای هر برنامه
  • ساسپند کردن سایت های IDLE جهت افزایش بازدهی سرور
  • و…

باید به این مورد توجه داشته باشید که زمانی باید از IIS استفاده کنید که برنامه مورد نظر شما جهت سرویس دهی از خانواده .net باشد. راه اندازی این وب سرور برای زبان های PHP و دیگر زبان های غیر مایکروسافتی کاملا اشتباه بوده و ممکن است شما را در اینده با مشکلات زیادی مواجه کند. باز هم این نکته را ذکر میکنم که پشتیبانی IIS فقط برای مکمل بوده و تحت فشار و استرس کاری کم قابل استفاده میباشد.

مقاله ارائه شده جهت اشنایی شما با وب سرور های پر کاربرد ارائه شد تا اندکی با وب سرور و برند های ان اشنایی پیدا کنید. توچه داشته باشید مفاهیم در کنار تجربه بهترین انتخاب را برای شما رقم خواهد زد.

اخرین امار استفاده از وب سرور ها در سال 2016 در تصویر زیر قابل مشاهده میباشد.

معرفی برترین وب سرورها

تعداد زیادی وب سرور تولید و در حال استفاده میباشد که میزان کاربران ان کمتر از 0.1% است.

  • Zope
  • Gunicorn
  • WEBrick
  • Jetty
  • Kangle
  • Zeus
  • Thin
  • Resin
  • BaseHTTPServer
  • Tornado
  • Yahoo Traffic Server
  • Monkey
  • Mongrel
  • Cherokee
  • Roxen
  • Paste WSGI HTTP Server
  • AOLserver
  • CherryPy
  • Hiawatha
  • IceWarp
  • SAP J2EE Engine
  • Abyss
  • H2O
  • WebToB
  • WebSTAR
  • KomHttpServer
  • Twisted
  • Yaws
  • NaviServer
  • Jexus
  • WebHare
  • RaidenHTTPD
  • Orion
  • Xitami
  • AllegroServe
  • nxweb
  • CouchDB
  • Misultin
  • Hunchentoot
  • G-WAN
  • Barracuda Server
  • Caudium
  • Mathopd
  • Virtuoso
  • Comanche
  • FAPWS
  • TUX
  • Ada Web Server
  • Lwan
  • Mongrel2
  • Tntnet
  • Trifork
  • Wildcat
  • Blazix
  • Noelios Restlet Engine
  • Swazoo
  • Tcl-Webserver
  • WebSiphon

 

سرور

مفهوم سرور سخت افزاری

مفهوم سرور سخت افزاری

مفهوم سرور سخت افزاری
مفهوم سرور سخت افزاری
یک سرور به کامپیوتری گفته می شود که داده های مورد نیاز را برای کامپیوترهای دیگر فراهم می سازد. سرور می تواند داده ها را در بستر شبکه های LAN و WAN در اختیار سیستم های دیگر قرار دهد.
بسیاری از سرورها مانند وب سرورها ، میل سرورها و فایل سرورها نمونه ای از سرورهایی می باشند که بواسطه  نصب نرم افزاری بخصوص بر روی آنها می توانند سرویس خاصی را در اختیار دیگر سیستم ها قرار دهند. برای مثال یک وب سرور می تواند Apache HTTP یا Microsoft IIS را اجرا کند و سرویس وبی مانند یک وبسایت را ارایه دهد. یک میل سرور برنامه ای مانند Exim یا iMail را اجرا می کند و می تواند سروریسهای SMTP برای ارسال و دریافت ایمیل را ارایه دهد. یک فایل سرور هم بواسطه نرم افزاری خاص یا قابلیت خود سیستم عامل می تواند سرویس اشتراک فایل در شبکه را در اختیار کامپیوترها قرار دهد.
در حالی که نرم افزارهای سروری مختص به نوع خاصی از سرورها می باشند ولی سخت افزارهای سرور انحصار خاصی را ندارند. در واقع کامپیوترهای دسکتاپ می توانند با اضافه کردن نرم افزار سروری به یک سرور تبدیل شوند. برای مثال کامپیوتری که به یک شبکه خانگی متصل شده است می تواند به عنوان فایل سرور یا پرینت سرور و یا هر دو مورد استفاده قرار گیرد.
در حالی که کامپیوترهای معمولی می توانند به عنوان سرور پیکربندی و عمل کنند ولی بسیاری از شرکتها و کسب و کارهای بزرگ از سرورهای سخت افزاری رکمونت (قابل نصب بر روی رک) که برای ارایه سرویسهای سروری طراحی شده اند استفاده می کنند. این سرورها که توسط کمپانی هایی مانند HPE و IBM تولید می شوند و قابلیت بسیار زیادی از قبیل RAID و Hot-Swap را دارند و می توانند سالها بدون یک هیچ وقفه ای سرویس ارایه دهند. در این سرورهای مدرن معمولا تعویض پاور برق و هارددیسک بدون هیچگونه خاموشی انجام می شود. یکی از کلیدی ترین قابلیت های این سرورها امکان مانیتورینگ و مدیریت هوشمند این سرورها از راه دور می باشد.
با توجه به اینکه سرورها می توانند انواع سرویسها را ارایه دهند نیاز به انواع مختلف سخت افزارها و قطعات دارند که می توان گفت انواع پردازنده ها ، رم ها ، هاردها و … برای کاربری های متفاوت تولید شده است.