برپایی یک سرور وب
در این فصل عناوین زیر را خواهید آموخت:
معرفی سرورهای وب Apache
پیکربندی سرور وب Apache
شروع به کار و توقف سرور
نظارت بر روی فعالیتهای سرور
Worid wide web بخشی از اینترنت است که سریعترین رشد را داشته است . بر طبق نظر Netceraft )www.netcraft.com ( بیش از 54 میلیون سایت وب بر روی اینترنت در سپتامبر سال 2004 وجود داشته است. تجارت الکترونیک یک فروشگاه مجازی جدید را برای اشخاصی که سعی دارند همگان با تکنولوژی به پیش بروند ارائه کرده است.
وب همچنین برای سازمانهایی که سعی دارند بصورت کم خرجی اطلاعات را منتشر و توزیع نمایند , بسیار سودمند بوده است و با افزایش قدرت محاسباتی کامپیوترها , کاهش قیمتها , سیستم عاملهای رایگانی نظیر لینوکس و سرورهای وب رایگانی نظیر Apache و TUX حضور اشخاص بر روی وب برای نشر اطلاعات , حتی ساده تر نیز شده است.
این فصل چگونگی نصب و پیکر بندی سرور وب Apache را نشان می دهد . هر یک از فایلهای پیکربندی سرور با جزئیات تشریح و توضیح داده شده است. شما در مورد گزینه های متنوع مربوط به شروع به کار و توقف سرورها , بعلاوه چگونگی نظارت بر روی فعالیت سرور وب مطالبی را خواهید آموخت . موضوعات امنیتی مرتبط و تمرینات در سراسر فصل با توضیحات و مثالهایی شرح داده می شوند.
نکته:نسخه فعلی لینوکس فدورا همراه با Apache نگارش 2.0 عرضه شده است Apache 2.0 شامل پشتیبانی از یک واسطه برنامه نویسی جدید Apache UNIX threading ( برای multi – processing Internet protocol Version 6(IPv6) و پروتکهای چند گانه می باشد تعداد کمی ماژولهای جدید نیز اضافه شده اند . با توجه به نگارش 2.0 اسامی بسته های Apache,httpd-manual httpd تغییر کرده است.
مقدمه ای بر سرورهای وب
World wide web بصورتی که امروزه شناخته شده است. بعنوان یک پروژه از Tim Bern-lee در مرکز اروپایی فیزیک علمی (cern) شروع شد . عدف اصلی ارائه یک رابط ثابت بود برای محققان و دانشمندانی که بوصرت جغرافیایی در کل گیتی پخش شدهه بودند و سعی داشتند به اطلاعاتی با فرمتهای گوناگون دسترسی پیدا نمایند . از این ایده مفهوم بکارگیری یک سرویس گیرنده (مرور وب) برای دسترسی به داده ها ( متن , تصاویر , اصوات] ویدئو و فایلهای باینری) از نوع سرویس دهنده finger .wais ,NNTP,SMTP,FTP,HTTP) و سرورهای (streaming – media استخراج شد.سرور وب معمولا دارای یک وظیفه مشابه می باشد : درخواستها Hyper Text Transfer Protocol (HTTP) و ارسال یک پاسخ بخ کلانیت ، اگر چه این وظیفه می تواند با انجام کارهای زیر پیچیده تر گردد ( همانند کاری که سرور می تواند انجام دهد):
انجام کنترل دسترسی مبتنی بر مجوزهای فایل , زوجهای نام کاربری / کلمه عبور و محدودیتهای نام میزبان / ادرس IP
تجزیه یک سند ( جایگزینی مقادیر مناسب برای تمامی فیلدهای شرطی موجود در سند) پیش از ارسال آن به کلاینت
ایجاد یک اسکریپیت common Gateway interface (CGI) یا برنامه Application (API) programming interface سفارشی برای ارزیابی محتویات فرم submit شده مایش سندی که بصورت پویا ایجاد شده است یا دسترسی به یک پایگاه داده.
ارسال یک اپلیت جاوا به سرویس گیرنده.
ثبت تمامی دسترسی های موفق, ناموفق خطاها
سرور وب Apache
سرور وب Apache در ابتدا مبتنی بر HTTPd و یک سرور رایگان از (NCSA) National center for
Supercomputing Application بود . در آن موقعHTTPd اولین و تنها سرور وب بر روی اینترنت بود . بدبختانه توسعه سرورها پا به پای نیازهای webmasterرشد نکرده و چندین مشکل امنیتی کشف شده است . اکثرwebmaster ها بصورت مستقل ویژگیها و ترمیمهای مختص به خودشان را بر روی سورس کدApache که به صورت رایگان در دسترس می باشد استفاده کرده اند و ویژگی های امنیتی بهبود یافته ای نظیر (SSL)Layer Secure Sockets را برای انتقال داده های رمزگذاری شده و ماژولهای اعتبار سنجی پیشرفته اضافه کرده اند.
ویژگی های اصلی سرور وب Apache عبارتند از:
قالیت ثبات پذیری (Stability) و چرخه توسعه سریع متناظر با گروه بزرگی از برنامه نویسان داوطلب.
سورس کد کامل و با قابلیت download بدون پرداخت هزینه
پیکر بندی ساده با استفاده از فایلهای متنی ساده
کنترل دسترسی مبتنی بر نام میزبان/ادرس IP سرویس گیرنده یا ترمیبات نام کاربری/کلمه عبور
پشتیبانی از اسکریپت نویسی سمت سرور بعلاوه اسکریپت های CGI
یک API سفارشی مه مازولهای خارجی(برای مثال برای قابلیتهای ثبت وقایع گسترش داده شده اعتبار سنجی بهینه شده caching ردیابی اتصال غیره)را برای بکارگیری بوسیله برنامه پس زمینه ای سرور فعال می نماید.
Apache تنها سرور وب در دسترس برای فدورا سایر سیستمهای لینوکس Red Hat نمی باشد. اما یکی از مرسومترین سرویسهایی است که با لینوکس بکار می رود و محبوبترین سرور بکار رفته بر روی اینترنت بر طبق نظرسنجی جدید .com /archives/web_server_survey.htmi) Netcraft Surveys (http://news.netcraft . com/arمی باشد . علاوه بر Apache همراه با سرور وب TUX عرضه می شود.
سرور وب TUX
سرور وب TUX (که به ان اصطلاحا Red Content Accelerator نیز اطلاق می گردد) یک سرور وب با کارایی بالا و مبتنی بر کرنل می باشد که بخشی از توزیع لینوکس فدرا Red Hat می باشد. با کار در داخل کرنل لینوکس TUX می تواند بصورت بسیار موثری به محتویات ایستا (نظیر تصاویر) در هنگام اجماع با یک برنامه سرور وب دیگر برای مدیریت محتویالت پویایی که در درایورهای کرنل TUX پشتیبانی نمی شوند (نظیر زبانهای اسکریپت نویسی متنوعی که TUXچیزی در مورد انها نمی اداند) سرویس دهی نماید.
نکته:وضعیت TUX با توجه به پشتیبانی از ان در کرنل 2.6 تا اندازه ای بهتر شده است اگر شما در دسترس به لیست پستی TUX مراجعه نمائید. به ادرسهای www.redhat.com/mailing_lists مراجعه کرده و با [email protected] مکاتبه نمائید.
بر روی کامپیوتری که در این سرور بر روی ان بکار رفته می شود سرور TUX عموما پورت سرور وب اولیه (پورت 80) را در اختیار می گیرد.(یک سرور وب Apache بر روی پورت 8080 یا برخی پورتهای دیگر به شنود می پردازد.) سرویس TUX از طریق اسکریپت اولیه /etc/init.d/tux راه اندازی شده و مبتنی بر پارامترهایی که در داخل /proc/net/tux تنظیم می نمائید اجرا می گردد.
حداقل شما یابد serverport(برای Apache ) و پارامتر های کرنل DOCROOT را برای مکان محتویات سرور وب تنظیم نمائید.این مکان (عموما /var/www/html)باید برای هر دو سرور TUX و Apache یکسان باشدو TUX برخی از انواع داده ای که از درایوهای کرنل پشتیبانی می نمایند را پردازش می نماید و سایرین بوسیله ماژولهای قابل بارگذاری پردازش می شوند. هر چقدر که این ماژولها در دسترس تر می شوند انواع داده ای بیشتری را می توان در کرنل اجرا کرد و مجبور نخواهید بود تا پردازشهای سطح کاربر را اهسته تر اجرا نمائید. ویژگی های خاص موجود در TUX عبارتند از: mass virtual hosting که به چنین domain اجازه می دهند تا بر روی یک سرور پشتیبانی شوند(که به ان اصطلاحا virtual hosting می گویند)و FTP support که به شما اجازه می دهند TUX را به عنوان یک سرور FTP ناشناس پیکربندی نمائید. همچنین از انجائیکه TUX یک پردازش را برای هر کلاینت شروع نمی کند هزاران اتصال کلاینت در یک لحظه بدون تقاضای بیش از حد برای تخصیص حافظه برقرار شوند .
برای کسب اطلاعات در مورد TUX بسته TUX که همراه با لینوکس فدورا عرضه شده است را نصب نمائید. سپس به مستندات ان با شروع از /usr/share/doc/tux-*/tux/index.htm; رجوع نمائید.
سایر سرورهای وب در دسترس در داخل فدورا
برخی دیگر از سرورهای وبی که می تواند بر روی توزیعات لینوکس فدورا و سایر توزیهات لینوکس Red Hat اجرا نمائید در لیست زیر با TUX هایی که اطلاعات کاملتری را ارائه می نمایند شرح داده شده اند.
stronghold4
در سرور وب مبتنی بر Apache از ویژگیهای Red Hat نظیر رمزگذاری SSL 28 بیتی و یک گواهینامه دیجیتالی استفاده می نماید. بر طبق نظر stronghold,Netcraf)www.netcraft.com( یک سرور وب SSL کاملا تجاری برای سیستمهای یونیکسی می باشد. برای کسب جزئیات به صفحه stronghold شرکت Red Hat به ادرسwww.redhat.com/software/stronghold رجوع نمائید.
Zope
علاوه بر توانایی سرویس دهی به محتویات وب zope شامل ویزگی هایی برای افزودن اخبار اطلاعات اعضاء و توانائیهای search می باشد. اساس zope تحت لیسانس GPL در دسترس می باشد zopr در داخل فدورا قرار داده نشده است. اما می توانید ان را از سایت توسعه zope(zope.sourceforge.net) بدست اورید. Zope مبتنی بر Python می باشد.
AOLserver3.5
در ابتدا این سرور NaviPress نامیده می شود و دارای ویژگیهای مدیریت مبتنی بر وب رمزگذاری SSL کنترل دسترسی و درایورهای پایگاه داده ای SQL می باشد. برای کسب اطلاعات بیشتر و دریافت سورس کد می توانید به سایت aolserver.sourceforge.net رجوع نمائید.
Boa0.94
این سرور برای ویزگیهای سریع و ساده بودن و نه زیر بار سنگین رفتن طراحی شده است.Boa به منابع سیستمی کمتری نسبت به سرورهای دیگر نیاز دارد و برای سخت افزارهای قدیمی تر ایده ال می باشد Boa همچنین برای بکارگیری بر روی سیستمهای embedded محبوب می باشد. این سرور را می توانید از ادرس www.bao.org بدست اورید.
CERN(W3C)jigsaw-
جدیدترین سرور مرجع HTTP/1.1 که کاملا به زبان جاوا نوشته شده و به صورت رایگان در ادرس www.w3.org/Jigsaw یافت می شود. ویژگیهای این سرور شامل پشتیبانی می شود)و یک ابزار مدیریتی گرافیکی می باشد.
Servertec iserver1.1
به زبان جاوا نوشته شده و نسبتا یک سرور کوچک است که تعادل بارگذاری و تحمل خطا در یک محیط کلاستر بندی شده را ارائه می نماید و می تواند به سادگی با سرورهای برنامه های کابردی وسرورهای پایگاه داده ای ادغام گردد. برای کسب اطلاعات بیشتر به ادرس www.servertec.com/products/iws.html رجوع نمائید.
شروع کار به سرور وب Apache
اگر سرور Apache در حین نصب فدورا نصب نشده است شما می توانید ان را بعدا از طریق سی دی های عرضه شده به همراه این کتاب نصب نمائید. شما به بسته httpd و به صورت اختیاری بسته httpd-manual نیاز خواهد داشت (که در نسخه های قبلی apache-manual , apache نامیده می شدند)
در اینجا یک روش سریع برای بدست اوردن سرور وب Apache توسط خودتان اورده شده است. از طریق این روش شما می توانید بر اساس نیازهایتان و محیطی که دران کار می کنید ان را سفارشی نمائید(بصورتی که در ادامه همین بخش توضیح داده می شود.)
1.با تایپ دستور زیر از طریق یک پنجره ترمینال مطمئن شوید که Apache نصب شده است.
$rpm-qa/ grep httpd
System- config-httpd-1.3.1-1
Httpd-devel-2.052-2
Httpd-2.052.-2
Httpd-manual-2.052-2
شماره نگارشی که می بینید ممکن است متفاوت باشد. شما برای شروع کار فقط به بسته httpd نیاز دارید. من بسته httpd-manual را توصیه می نمائیم. زیرا دارای اطلاعات فوق العاده ای در مورد کل فرایند برپاسازی Apache می باشد. بسته httpd-devel شامل ابزار apxs برای ساخت و نصب ماژورهای extension می باشد. بسته system-config-httpd شامل یک ابزار پیکربندی Apache مبتنی برGUL می باشد.
2- توصیه می شود که برای سرور Apache از یک نام host معتبر استفاده نمائید(برای مثال abc.handsonhistory.com) اگر شما یک نام domain را ویرایش کرده و ServerName را به عنوان ادرس IP کامپیوترتان ویرایش نمائید. فایل httpd.conf را بعنوان کاربر ریشه در یک ویرایشگر متن باز کنید بدنبال خطی شامل عبارت ServerName new.host.name:80 بگردید و ان را از احالت توضیح خارج کنید . این کد باید بصورت زیر ظاهر گردد:
Server Name new.name:80
برای اینکه سرور وب را در دسترس LAN قرار دهید می توانید بجار new.host.name ادرس IP را جاگزین کنید (برای مثال serverName10.0.0.1)80.: شماره پورت را نشان می دهد (که مقدار پیش فرض اس) برای وب سرور وب عمومی یک نام میزبان DNS واقعی را بدست اورید. (برای کسب اطلاعات در مورد DNS و ساخت یک سرور عمومی به فصل بیست و پنجم رجوع کنید).
3.یک آدرس ایمیل مدیریتی را اضافه نمائید تا اشخاصی که در موردی با یک مشکل در رابطه با سرورتان برخورد می نمایند, با آن آدرس تماس بگیرند . در داخل فایل /etc/httpd/conf/httpd.conf آدرس مدیریتی پیش فرض بصورت زیر ظاهر می گردد:
Server Admin root @ localhost
آدرس root @ localhost را به آدرس ایمیل مدیر Apache تغییر دهید.
4-سرورhttpd را راه اندازی کنید . بعنان کاربر ریشه , دستور زیر را تایپ کنید:
#Service httpd start
اگر همه چیز مرتب باشد این پیام باید ظاهر گردد:starting httpd:{ok} اکنون شما آماده کار می باشید.
5- برای اینکه httpd را وارد کنید تا هر زمانی که سیستمتان بوت می گردد راه اندازی شود, بعنوان کاربر ریشه دستور زیر را اجرا کنید:
# chkonfig httpd on
6- برای اینکه مطمئن شوید که سرور وب در حال کار کردن می باشد,Mozilla (با یک مرور گر وب دیگر) را باز کنید و در داخل کادرlocation دستور زیر ار تایپ کنید و کلید Enterرا فشار دهید:
http://localhost/
7- شما باید صفحه test مربوط به سرور وب Apache را بگونه ای که در شکل 1-21 نشان داده شده است مشاهده مائید . برای دسترسی به این صفحه از طریق یک کامپیوتر دیگر, شما باید نام میزبان سرور Apache یا آدرس IP را وارد نمائید.
8-صفحه Test در حقیقت یک وضعیت خطا می باشد , که نشان می دهد شما هیچ محتویاتی را به سایت وبتان اضافه نکرده اند . برای شروع کار, شما باید یک , شما باید فایل index . html را اضافه نمائید که شامل محتویات صفحه خانگی مختص به شما در داخل دایرکتوری /var/www/htmi می باشد. سپس شما می توانید به افزودن محتویات مختص خودتان با این ساختار دایرکتوری ادامه دهید.
اکنون که سرور وب شما در حال کار کردن است( یا حداقل , امیدواریم که اینگونه باشد ) شما باید از میان مراحل موجود در بخش بعدی بگذرید . من به شما کمک کی نمایم تا چگونگی بر پایی مرتب سازیهای سرور وب پیچیده تر و محافظت از سرورتان در برابر سوء استفاده ها را یاد بگیرید .عبور از مراحل این بخش همچنین به شما کمک خواهند کرد تا در موردی که سرور وب تان کار نمی کند , ان را اشکالزدایی نمائید.
پیکربندی سرورApache
فایل اصلی برای پیکر بندی سرور وب Apache ,httpd .conf می باشد ( که در دایرکتوری /etc/httpd/conf قرار دارد) چند سال قبل که پروژه Apache شروع شد بکارگیری فایلهای پیکر بندی اضافی نظیر srm.conf و access.conf را توصیه نمی کرد و همه پیکربندییها رادراخل فایل httpd.conf را توصیه نمی کرد و همه پیکربندیها را در مورد فایل httpd.conf می باشد:
#
#Based on the NCSA server configuration files originally by Rob McCool
#
#This is the main Apache server configuration file. It contains the.
#configuration directives that give the server its instructions.
#Seefordetailedinformnation
#about the directives.
#
#Do NOT simply read the instructions in here without understanding
#what they do. They're here only as hints or reminders. If you are
#unsre consult the online doce. You have been warnd.
#
#The configuration directive are groped into three basic sections:
#Directives that contral the operation of the Apache server.
#process as a whole (the global environment')
#2.Dirctives that define parameters of the main or default server.
#which respobds to requests that aren't bandled by a virtual host.
#These directives also provided default values for the settings
#of all virtual hosts.
#3.Settings for virtual hosts, which allow web requests ti be sent
#to different IP addresses or hostanames and have them handled by
#the same Apache server process
#
#Configuration and logfile namesL If the filenames you specfy for
#many of the server's control files begin with"/" (or "drive/"for
#Win32), the server will use that explicit path . If the filenames do
#*not* begin with "/" the value of Server Root is perpended –so
#"lofs/foo.log" with Server Root set "/use /local/apache"will be
#interperetd by server as "/usr/local /apache/logs/foo.log".
این بخش شامل توضیحات کاملی می باشد. این بخش اساسا به شما چگونگی جمع اوری اطلاعات در این فایل و چگونگی دسترسی برنامه httpd به این فایل را بیان می نماید.بصورت پیش فرض فایلهای logدر داخل دایرکتوری /var/log/httpd قرار دارند.
تنظیم محیط سراسری (global environment)
در بخش section 1: Global Environment فایل httpd .conf شما دستوراتی را تنظیم می نمائیم که بر روی کارهای عمومی بر روی سرور Apache اثر می گذارد.در اینجا تفاوت دستورات اورده شده است:
### Sertion 1: Global Environment
#
#The directives in this section affect overall operation of Apache
#such as the number concurrent requests it can handle or where it
#can find its configuration files.
آشکار نمودن زیر کامپوننتها(subcomponents)
دستور server Tokens به شما اجازه می دهد تا از اینکه کامپیوترهای راه دور بتوانند زیر کامپوننتهایی که به روی سرور Apache در حال اجرا می باشند را اشکار نمایند ممانعت بعمل اورید.اگر شما دوست ندارید که اطلاعات اشکار شوند این دستورات را از حالت توضیحی خارج نمائید. برای ممانعت از اشکار سازی اطلاعات server Tokens ره بصورت زیر تنظیم نمائید:
#
#Don't give away too much information about all the subcomponents
#we are running Comment out this line if you don's mind remote sites
#finding out what major optinal modules you running
Server Tokens OS
تنظیم دایرکتوری ریشه سرور
دستور server Root دایرکتوریی که شامل فایلهای پیکربندی و لینکی به دایرکتوری فایل log و لینکی به دایرکتوری ماژول می باشد را تعیین می کند. یک نام مسیر serverRoot جایگزین را می توان با استفاده از ارگومان خط فرمان –d دستور httpd تعیین نمود.
#Server Root :The top of directory tree under which the server's
#configuration, error , and log files are kept.
#
#NOTE! If you intend to place this on an NFS (or other network)mounted
#filesystemthen please read the Lick file doumentian(available
#at < URL://httpd.org/doce-2.0/mod/core.html#lockfile>)
#you will save yourself a ot of trouble
#
#Do NOT add a slash at the end of the directory path
#
Server Root "/etc/httpd
ذخیره سازی فایل PIDسرور
سرور وب Apache PID مربوط به پردازش سرور در حال اجرا را ردگیری می نماید شما می توانید مکانهای این فایل را با استفاده از هر فایلی که بعدا تشریح می گردد تغییر دهید:
#
#pid File :The file in which the server should record its process
#identigication number when if starts
#
pidFile run/httpd.pid
Apache از pidFile برای ذخیره نمودن ID پردازش اولین برنامه پس زمینه ای اصلی(متعلق به کار بر ریشه)استفاده می نماید این اطلاعات در هنگامی که سرور shut down می گردد بوسیله اسکریپت /etc/init.d/httpd و همچنین بوسیله اداره کننده وضعیت سرور (بصورتی که بعدا شرح داده می شود) بکار برده می شود.
پیکر بندی مقادیرtimeout
شما می توانید با timeout چندین مقدار را تنظیم نمائید. برخی از این مقادیر در متن کدهای زیر توضیح داده می شود.
#
# Timeout : The number of seconds before receives and sends time out
#
Timeout 120
#
#keepAlive: Whether or not to allow persistent connetions (more than
#one request per connection). Set to "Off to deactivate.
#
Keep Alive off
#
# Max Keep Alive Requests: The maxmum number of requests to allow
#during a persistent connection . Set to 0 to allow unlimited amount.
#we recommend you leave this number high for maximum performance.
#
Max Keel Alive Requests 100
#
# Max Keel Alive Timeout : Number of seconds to wit for the next request for
# the same client on the same connection
#
Keep Alive Timeout 15
دستور timeout مقدار ثانیه ای که Apache یک اتصال را ما بین بسته های دریافتی ما بین acknowledgement های دریافتی از پاسخهای ارسالی یا در هنگام دریافت یک درخواست ورودی بازنگه می دارد را تعیین می نماید. پیش فرض دو دقیقه 120 ثانیه را در صورتی که میزان باز بوردن بیش از حد است یا اتصالات بر روی کامپیوترتان در حالت بیکار idle می باشند می توان کاهش داد.
اگرچه اگر سرورتان بصورت دائم باید به مقادیر فراوانی از محتویات سرویس دهی نماید یا گاهگاهی باید به درخواستهای فراوانی پاسخ دهد شما باید تنظیم پارامتر های مرتبط با mpm را در داخل فایل httpd.conf در نظر داشته باشید.
در اینجا برخی موضوعاتی که در صورتی که بخواهید هر کدام از پارامترهای مرتبط با MPM را تغییر دهید باید در نظر بگیرید اورده شده است.
RAM حیاتی است
هر پردازش و thread که فعال است مقداری از حافظه را مصرف می نماید اگر تعدادپردازشها و thread های فعال به مقدار RAM ی که دارید برسد کامپیوترتان از فضای swap استفاده خواهد کرد و کارایی به سرعت کاهش خواهد یافت مطمئن شوید که این مقدار حافظه RAM بر روی سیستمتان برای اداره حداکثر پردازشها و thread سروری که انتظار دارید بر روی سرور وب Apache اجرا شوند کافی می باشد.
پیکر بندی حداکثر بار-Apache قادر به ساخت پردازش ها و thread های سرور جدید (در صورت نیاز)می باشد شما به داشتن حداکثر تعداد پردازشها و thread در دسترس در تمامی اوقات نیاز ندارید بجای ان شما می توانید حداکثر تعداد سرورها و thread هایی که Apache می تواند بصورت پویا بعنوان تقاضای نیازهای سرور اضافه نماید را پیکر بندی کنید.
هنگامی که Apache راه اندازی می گردد یک مجموعه عددی از پردازشهای سرور thread را یک والد و چندین پردازش thread فرزند برای مدیریت درخواستهای ورودی برای محتویات مربوط به سرور وب اجرا می نماید پارامترهای مربوط به تعریف تعداد پردازشهای سرور thread یی که در دسترس می باشند شامل اندسته ای می باشند که موارد زیر را تنظیم می کنند:
چه تعداد پردازش سرور فرزند باید بوسیله سرور httpd والد شروع شوند (startservers)
حداقل تعداد پردازشهای سروری که باید بعنوان یدکی نگهداری شوند(minspareserver)
حداکثر تعداد پردازشهای سروری که باید بعنوان یدکی نگهداری شوند (maxspareserver)
حداکثر مقدار Maxclients می تواند بیش از عمر سرور باشد (serverLimit)
حداکثر تعداد پردازشهای سروری که مجاز به شروع شدن می باشند ( Max Clients)
حداکثر تعداد در خواستهای یک پردازش که میتواند سرویس دهی شود (Max Request Per Child
پارامترهای مربوط به تعداد thread های در دسترسی برای هرپردازش سرور httpd شامل اندسته ای هستند که موارد زیرا تنظیم می نمایند :
حداکثر تعداد thread های یدکی که باید همواره در دسترس باشند پس از اینکه thread های زیادی ایجاد شده اند (Min Spare Thread)
حداکثر تعداد مربوط به thread یدکی با توجه به thread های فعال برای دوباره بدست آوردن تعداد thrad های هر فرزند حدف خواهند شد ( Max Spare Threads)
تعداد thread هایی همواره باید برای هر پردازش فرزند در دسترس می باشند (Threads Per Child)
کد نمونه زیر چگونه پارامترهای خاص MPM موجود در فایل httpd. Conf مربوط به ماژول preforc ( ماژول non- threaded مربوط به مدیریت پردازشهای سرورها ) و worder,c ( ماژول multi- thread و multiprocess سرور وب ) را نشان می دهد .
##
## Server pool Size Regulation (MPM specific)
##
Start Servers 8
Min Spare Servers 20
Server Linit 256
Max Clients 256
Max Requests Per Child 4000
Strat Servers 2
Max Clients 150
Minspare Threads 25
Maxapare Threads 75
ThrsadsPerchild 25
maxRequestsPerchild 0
یک پردازش پس زمینه ای متعلق به کار بر ریشه که به پورت مناسب متصل شده است را اجرا نموده سپس به یک کاربر بی مجوز (nonprivileged) سوئیچ می نماید . سپس اکثر سرورها ( همتراز با مقدار دستور strt Serveres موجود در perfork.c) بعنوان nonprivileged مشابه اجرا می شوند ( دراین مورد کاربر Aapache)
Apache سعی می نماید تا بصورت هوشمند سرورها را مبتنی بر بار فعلی اجرا و متوقف نماید . اگر میزان ترافیک کاهش پیدا می نماید و سرورهای بیکار (idle) فراوانی وجود دارند برخی ازسرورها متوقف خواهد شد ( این تعداد به میزانی که در min Spare servers ذکر شده کاهش پیدا می نماید . )
بصورت مشابه اگرتعدادزیادی درخواست در فواصب زمانی که خیلی نزدیک برسند و سرورهای فوق العاده زیادی منتظر اتصالات جدید یاشند بیشتر سرورها شروع خواهند شد ( حداکثر تا تعداد سرورهایی که در Max Clients ذکر شده اند )
با بکار گیری مقادیری که در بالا تعیین شده اند وقتی که یک برنامه پس زمینه ای شروع می گردد پردازشهای سروری والد و هشت فرزند که منتظر اتصالات هستند اجرا خواهند شد ( بصورتی که بوسیله Start Servers تعریف می شوند . هنگامی که درخواستهای بیشتری می رسند . Apache مطمئن خواهد شد . که حداقل پنج پردازش سروری آماده پاسخگویی درخواستهای می باشند وقتی که درخواستها تمام شدند و هیچ اتصال جدید نیز نرسید Apache شروع به گشتن پردازشها خواهد کرد تا زمانیکه تعداد پردازشهای idle (بیکار ) سرور وب به زیر 20 برسد مقدار start Servers باید همواره چیزی مابین Min Spare Servers و Max Spare Servers باشد .
Apache کل تعىاى thread های همؤمان را بوسیله دستور Maxclients می نمایى مقدار فرض 150 می باشى ‘ که بایى بصورت مناسبی بالا باشى ز اطر ده صورتی که فهمی که مکررا ىر فاصله ؤمانی کوتاه thread زیادی را اجرا می نمائید , به خاطر داشته باشید که کلیه اتصلات پشت سر صدو پنجاه امین thread پذیرفته نمی شوند (reject) در برخی موارد اگر سخت افزارتان بصورت مناسبی قدرتمند است ( و اگر اتصال شبکه تان می تواند بار شبکه را اداره نماید )باید مقدار Max Clientsرا افزایش دهید.
برای حداقل رسیدن تأثیر فقدان حافظه مجاز ( و برای اینکه مخزن سرور را "fresh" و ( تر و تازه) نگه دارید , هر پردازش سرور به تعدادی درخواست محدود شده است که می تواند فقط آ درخواستها را اداره نماید ( برابر با مقدار Max Requests Per Child پس از سرویس دهی به چهار هزار درخواست ( مقداری که در بالا تعیین شده است) پردازش از بین خواهد رفت . حتی دقیق تر این است که بگوئیم که هر پردازش می تواند به چهار هزار اتصال سرویس دهی نماید زیرا تمامی درخواستها keep Alive (آنقدر پیش می رود تا به مقدار keep Alive Timeoutبرسد) فقط یک درخواست محاسبه می گردد.