وب سرور قلب تپنده هر وبسایتی است و وظیفه دارد ارتباط بین مرورگر کاربر و محتوای سایت را برقرار کند. در میان انواع وبسرورها، Apache یکی از محبوبترینهاست که سالهاست به عنوان ستون اصلی اینترنت شناخته میشود. این نرمافزار متنباز و رایگان توسط بنیاد Apache توسعه یافته و اکنون میلیونها وبسایت در جهان بر بستر آن فعالیت میکنند.
در این مقاله از سری آموزش های سرور بررسی میکنیم آپاچی چیست، چگونه کار میکند، چه مزایا و معایبی دارد و چطور میتوان آن را روی سیستمعاملهای مختلف مانند Ubuntu و CentOS نصب کرد.
اگر قصد دارید وبسایت خود را روی یک زیرساخت پایدار و امن راهاندازی کنید، شناخت آنکه سرور چیست؟ و آشنایی با Apache میتواند اولین گام مهم شما باشد.
وب سرور چیست؟
وب سرور نرمافزاری است که درخواستهای کاربران را از مرورگر دریافت کرده و محتوای مورد نظر را به آنها نمایش میدهد. به زبان ساده، وقتی آدرس یک وبسایت را وارد میکنید، وب سرور صفحه موردنظر را از روی سرور واکشی کرده و برای مرورگر ارسال میکند. وبسرورها از پروتکل HTTP یا HTTPS برای این ارتباط استفاده میکنند و وظیفه دارند امنیت و سرعت انتقال دادهها را تضمین نمایند.
بنابراین در واقع وب سرور نرم افزاری است که درخواست شما مبنی بر دسترسی به یک صفحه وب را دریافت میکند. با بررسی موارد امنیتی درخواست HTTP و HTTPS شما انجام میشود و شما را به صفحه وب مربوطه هدایت میکند.
وب سرور apache چیست؟
Apache همانند Nginx یک نرم افزار کاربردی بسیار محبوب است. این برنامه با بیش از 60٪ سهم در بازار وب سرورهای تجاری، پرکاربردترین برنامه وب سرور در جهان است. در واقع Apache پرکاربردترین برنامه وب سرور در سیستم عاملهای Unix و Linux است اما از طرفی تقریباً در همه سیستم عاملها مانند Windows، OS X، OS / 2 و غیره نیز قابل استفاده است.
کلمه Apache از نام محلی قبیله ای در امریکا با نام آپاچی گرفته شده است که به مهارت در جنگ و استراتژی سازی معروف هستند.
آپاچی یک برنامه وب سرور مدولار و مبتنی بر فرآیند است که با هر اتصال همزمان یک رشته (thread) جدید ایجاد میکند. بسیاری از threadها به صورت ماژولهای جداگانه کامپایل میشوند و در نتیجه عملکرد اصلی آن را افزایش میدهند و میتوانند طیف گسترده ای از خدمات (از پشتیبانی از زبان برنامه نویسی سمت سرور گرفته تا مکانیزم احراز هویت) را ارائه دهند.
همچنین امکان نصب و راه اندازی با خرید سرور مجازی (VPS) یکی از ویژگیهایی است که به وب سرور آپاچی اجازه میدهد تا به تعداد زیادی از وب سایتهای مختلف روی سرور سرویس دهد.
وب سرور آپاچی چگونه کار میکند؟
اگرچه ما Apache را یک وب سرور مینامیم، اما در اصل یک سرور فیزیکی نیست، بلکه یک نرم افزار است که روی سرور اجرا میشود و وظیفه اصلی آن ایجاد ارتباط بین سرور و مرورگرهای بازدید کنندگان وب سایت (فایرفاکس، گوگل کروم، سافاری و …) و ارتباط بین آنها (ساختار سرویس دهنده-سرور) است. Apache یک نرم افزار کراس پلت فرم است، بنابراین روی هر دو سرور یونیکس و ویندوز کار میکند.
هنگامیکه یک بازدید کننده میخواهد صفحه ای را در وب سایت شما (به عنوان مثال، صفحه اصلی یا صفحه “درباره ما” ) بارگیری کند، مرورگر وی درخواستی را به سرور شما ارسال میکند و Apache پاسخی را شامل تمام فایهایهای درخواست شده (متن، تصاویر و غیره) برمیگرداند. سرور و سرویس گیرنده از طریق پروتکل HTTP باهم ارتباط برقرار میکنند و نرم افزار Apache مسئول ایحاد ارتباطی ایمن بین دو دستگاه است.
آپاچی بسیار انعطاف پذیر است، زیرا ساختاری مبتنی بر ماژول دارد. ماژولها به مدیران سرور این اجازه را میدهند که برخی ویژگیهای اضافی را غیر فعال و یا فعال کنند. همچنین Apache ماژولهایی برای امنیت، حافظه پنهان، بازنویسی URL، احراز هویت رمز عبور و موارد دیگر دارد. علاوه بر آن، میتوانید پیکربندیهای سرور خود را از طریق فایلی به نام htaccess تنظیم کنید که یک فایل پیکربندی Apache است.
مقاله مرتبط: htaccess چیست؛ ۲۲ کاربرد آچار فرانسه وبسایت را بشناسید
آموزش نصب آپاچی بر روی اوبونتو 20.04
برای نصب آپاچی و مدیریت حرفهای وبسرور، استفاده و خرید سرور مجازی VPS لینوکس بهترین گزینه است.
مرحله ۱ – به روز رسانی سرور و نصب وب سرور Apache
جهت به روز رسانی و نصب آپاچی، دستور زیر را تایپ کرده و کلید Enter را فشار دهید:
sudo apt update
sudo apt upgrade
sudo apt install apache
مرحله ۲ – اطمینان حاصل کنید که سرویس Apache در زمان بوت شدن راه اندازی شود.
جهت این کار، برای فعال کردن apache.service از دستور systemctl به صورت زیر استفاده نمایید:
sudo systemctl is-enabled apache2.service
sudo systemctl enable apache2.service
sudo systemctl start apache2.service
جهت بررسی وضعیت سرویس آپاچی میتوانید از دستور زیر استفاده نمایید:
sudo systemctl status apache2.service
مرحله ۳ – با استفاده از فایروال UFW پورت Apache 80 و 443 را باز کنید.
دستورات زیر را برای باز نمودن پورت TCP 80 و 443 اجرا کنید:
sudo ufw allow 80/tcp comment 'accept Apache'
sudo ufw allow 443/tcp comment 'accept HTTPS connections'
sudo ufw status
مرحله ۴ – آدرس IP سرور Ubuntu 20.04 LTS خود را پیدا کنید.
جهت این کار یکی از دستورات زیر را وارد نمایید:
hostname -I
ip a
ip a s eth0
مرحله ۵ – نصب Apache خود را در اوبونتو تست کنید.
سپس از نصب صحیح آپاچی با استفاده از دستور زیر اطمینان حاصل نمایید:
curl -I http://10.105.28.158
همچنین میتوانید با وارد نمودن IP خود در مرورگر از نصب صحیح آن اطمینان حاصل نمایید.
http://your-server-ip
آموزش نصب آپاچی بر روی CentOS 8
برای نصب آپاچی و استفاده از تمام امکانات مدیریت وبسرور بر روی CentOS، خرید سرور اختصاصی بهترین گزینه است.
مرحله ۱: مخزن نرم افزار را به روز کنید.
جهت این کار پنجره ترمینال را باز کرده و لیستهای پکیجهای Repository را با وارد کردن دستور زیر به روز کنید:
sudo yum update
مرحله ۲: Apache را نصب کنید.
جهت این کار دستور زیر را وارد نمایید:
sudo yum –y install httpd
مرحله ۳: وب سرور Apache را راه اندازی و فعال کنید.
جهت این کار دستور زیر را وارد نمایید:
sudo systemctl start httpd
sudo systemctl enable httpd
مرحله ۴: وضعیت وب سرور Apache را بررسی کنید.
جهت بررسی وضعیت وب سرور و نیز فعال نمودن آپاچی، دستورات زیر را وارد نمایید:
sudo systemctl status httpd
sudo systemctl reload httpd
مرحله ۵: فایروال را برای Apache تنظیم کنید.
جهت این کار دستورات زیر را وارد نمایید:
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload
sudo firewall-cmd --list-all | grep services
جهت اطمینان از نصب صحیح آپاچی، میتوانید با وارد نمودن IP خود در مرورگر از نصب صحیح آن اطمینان حاصل نمایید.
http://your-server-ip
مزایای آپاچی Apache Web Server
وب سرور Apache میتواند یک انتخاب عالی برای اجرای وب سایت شما در یک سیستم عامل پایدار و همه کاره باشد. بیشتر هاستهای لینوکسی از Apache پشتیبانی میکنند و بهترین کارایی را در میزبانی وب ارائه میدهند. به همین دلیل خرید هاست لینوکس بهترین انتخاب برای وبمستران حرفه ای است. در ادامه مهمترین مزایای آپاچی شرح داده شده است.
۱. منبع باز و رایگان
یکی از مهمترین مزایای وب سرور آپاچی، منبع باز (Open Source) بودن آن میباشد و حتی برای استفاده تجاری نیز رایگان میباشد. لذا کاربران به راحتی میتوانند کد منابع آن را بررسی و به دلخواه تغییر دهند و کدهای آن قابل برنامه ریزی بوده و میتواند متناسب با نیاز تنظیم شود.
۲. پایداری
آپاچی نرم افزاری قابل اعتماد و پایدار میباشد و به راحتی میتوانید نزم افزارها و فایلهای خود را در آن مدیریت نمایید.
۳. انعطاف پذیری
یکی دیگر از مزایای آپاچی انعطاف پذیری آن میباشد. شما به راحتی میتوانید ماژولها و برنامههای مورد نیاز خود را به آن اضافه نمایید. در نتیجه آپاچی به دلیل ساختار مبتنی بر ماژول آن، نسبت به سایر رقبای خود بسیار انعطاف پذیرتر است.
۴. راحتی و سادگی
پیکربندی آسان آپاچی آن را محبوب بسیاری از برنامه نویسان مبتدی و حرفه ای نموده است.
۵. قابلیت نصب روی انواع سیستم عاملها
آپاچی cross platform میباشد. بدین معنا که این وب سرور به راحتی روی هر سیستم عاملی قابل نصب میباشد و روی انواع سرورهای یونیکس و ویندوز به خوبی کار میکند.
۶. بهترین گزینه برای CMSها
آپاچی بهترین گزینه برای نصب انواع سیستمهای مدیریت محتوا از جمله وردپرس، دروپال، ووکامرس و … میباشد.
۷. انجمنهای پشتیبانی
در صورت بروز هرگونه مشکل میتوانید به انجمنهای بزرگ آپاچی مراجعه نموده و از پشتیبانی سریع و آسان آن بهره مند شوید. در این انجمنها تقریبا تمامیمشکلات و موانع آپاچی مورد بحث و بررسی قرار گرفته اند.
معایب آپاچی
با وجود مزایای بسیار آپاچی، این وب سرویس معایبی نیز دارد که باید به آنها توجه کنید.
۱. عملکرد
آپاچی مشکلات عملکردی در وب سایتهای بسیار پرترافیک و پربازدید دارد.
۲. پیکربندیهای متعدد
آپاچی گزینههای پیکربندی بسیار زیادی دارد که میتواند منجر به آسیب پذیریهای امنیتی بیشتری شود.
۳. اشکال زدایی
مزیت سفارشی سازی در آپاچی باعث ایجاد اشکالات دیگری نیز میشود و در واقع با توجه به امکان سفارشی سازی و تغییر در کد منابع، اشکالات و خطاهای جدید ایجاد میشوند. در نتیجه آن، اشکال زدایی در آپاچی وقت و منابع بیشتری را درگیر میکند.
مقایسه آپاچی و سایر وبسرورها
علاوه بر Apache، وب سرورهای محبوب دیگری نیز وجود دارد. هر وب سرور برای هدفی خاص ایجاد شده است. در حالی که Apache بیشترین استفاده را دارد، اما در مقایسه با سایر رقبا بهترین عملکرد را دارد.
مقایسه apache و tomcate
Tomcat یک وب سرور است که توسط بنیاد نرم افزار Apache توسعه یافته است و نام رسمیآن Apache Tomcat است. تام کت یک سرور HTTP نیز هست، با این وجود به جای سرویس دهی به وب سایتهای استاتیک، به ابرنامههای جاوا اولویت میدهد. Tomcat میتواند چندین ویژگی مختلف جاوا مانند Java Servlet، JavaServer Pages (JSP)، Java EL و WebSocket را اجرا کند.
Tomcat به طور خاص برای برنامههای جاوا ایجاد شده است، در حالی که Apache یک سرور HTTP با کاربردهای عمومیاست. با کمک ماژولهای اضافی رویApache (mod_php، mod_python، mod_perl و …) میتوانید از Apache همراه با زبانهای برنامه نویسی مختلف (PHP، Python، Perl و …) استفاده کنید.
اگرچه میتوانید از یک سرور Tomcat برای سرویس دهی صفحات وب ثابت نیز استفاده کنید، اما در مقایسه با سرور Apache از کارآیی کمتری برای این منظور برخوردار است. به عنوان مثال، Tomcat ماشین مجازی جاوا و سایر کتابخانههای مرتبط با جاوا را که در اکثر وب سایتها به آنها نیازی ندارید، از قبل بارگیری میکند.
همچنین Tomcat در مقایسه با سایر وب سرورها قابلیت انعطاف پذیری کمتری دارد. به عنوان مثال، برای اجرای وردپرس، بهترین انتخاب سرور HTTP با کاربردهای عمومی مانند Apache یا NGINX است.
مقایسه apache و IIS
Apache و IIS هر دو مزایا و معایب خود را دارند که برخی از آنها در بالا توضیح داده شد. مقایسه و نعیین بهترین آنها توسط چند عامل زیر تعیین میشود:
IIS برخلاف آپاچی که روی تمامیسیستم عاملها قابل نصب واجرا است، فقط و فقط همراه ویندوز قابل ارائه میباشد. Apache از امنیت عالی تری نسبت به ویندوز برخوردار است. امکان ارائه NET توسط آپاچی نمیباشد.
خلاصه مزایای و معایب این دو وب سرور در جدول زیر آورده شده است.
Apache | IIS | Features |
Linux, Unix, Windows, macOS | Windows | Supported OS |
Community support | Corporate support | User support & fixes |
Completely free | Free, but bundled with Windows | Cost |
Open source | Closed, proprietary | Development |
Good | Excellent | Security |
Good | Good | Performance |
42% | 32% | Market share |
جمع بندی
آپاچی در طول دههها توانسته به یکی از پرکاربردترین وبسرورها تبدیل شود. انعطافپذیری بالا، پشتیبانی از ماژولهای متعدد، امنیت مناسب و سازگاری با سیستمعاملهای مختلف، آن را به گزینهای مطمئن برای وبسایتهای کوچک و متوسط تبدیل کرده است.
با این حال، برای وبسایتهای پرترافیک ممکن است محدودیتهایی در عملکرد وجود داشته باشد. انتخاب صحیح بین Apache و سایر وبسرورها مانند Nginx یا IIS به نیاز پروژه شما بستگی دارد. اگر به دنبال راهاندازی سایت با استفاده از CMSهایی مثل وردپرس یا جوملا هستید، Apache همچنان یکی از بهترین انتخابهاست. اگر قصد راهاندازی و طراحی سایت وردپرسی دارید، Apache یکی از بهترین وبسرورها برای شماست.
مرسی از سایت خوبتون