در این آموزش ، به بررسی و آموزش وب سرور آپاچی (Apache) که یکی از محبوبترین وب سرور های open source می باشد می پردازیم . همچنین مراحل پیاده سازی این وب سرور کاربردی را در سرورهای لینوکسی به شما آموزش خواهیم داد .
بیش از ۸۰ درصد اپلیکیشن های وب و وب سایت ها توسط سرور های open source ارئه و پشتیبانی می شوند.که این نشان دهنده اهمیت بسیار زیاد این سرورها در دنیای امروز می باشد.
اما در ابتدا باید با وب سرور آشنا شویم :
وب سرور چیست؟
وب سرور اصطلاحا به سیستمی گفته می شود که درخواست ها را از طریق پروتکل http (که اصلی ترین پروتکل شبکه است و برای توزیع اطلاعات در شبکه جهانی وب استفاده می شود ) پردازش می کند.
وب سرور می تواند به یک سیستم سخت افزاری کامل و یا به طور خاص به نرم افزاری که درخواست های http را دریافت و پردازش می کند اطلاق شود در این مقاله ما به معرفی نرم افزار وب سرور آپاچی (Apache) می پردازیم.
وب سرور آپاچی (Apache)
آپاچی یک وب سرور open source است که اولین بار در سال ۱۹۹۵ منتشر شد. و امروزه بیش از 40 درصد از وبسایتها را در سطح جهان از این وب سرور لینوکسی استفاده می کنند و محبوب ترین وب سرور تا به امروز بوده است.
آپاچی بدلیل ساختار ماژولاری که دارد بسیار انعطاف پذیر و قابل شخصی سازی است. ماژول هایی که به ادمین سرور اجازه میدهند ویژگی های مختلف را اضافه و یا حذف کند. برخی از ماژول های پرکاربرد آپاچی را به شما معرفی می کنیم :
mod_security: ماژولی برای امنیت است که با استفاده از یک سری توابع از سرور شما در برابر حملات محافظت می کند.
mod_Rewrite: برای بازنویسی URL کاربرد دارد.بطور مثال زمانی که میخواهید آدرس های وارد شده بصورت http در مرورگر به https ، rewite شوند وب سایت بصورت secure بر روی پورت 443 باز شود.
mod_cache : ماژولی که برای ذخیره سازی کاربرد دارد .که جهت دسترسی بهتر و سریعتر کاربر به محتوا مورد استفاده قرار میگیرد.
mod_ssl : با استفاده از این ماژول میتوان ssl و tls را د ر وبسایت خود نصب نمایید.
آپاچی همچنین دارای ماژول password authentication ، پشتیبانی از برنامه نویسی سرور جانبی php و load balancing برای کنترل مقادیر ترافیک بر روی سرور می باشد.
همچنین می توانید تنظیمات سرور خود را از طریق فایل htaccess که یک فایل پیکربندی آپاچی است کانفیگ کنید. این فایل را می توانید به سادگی و با استفاده از یک ویرایشگر متنی مانند html و یا text مانند notepad ایجاد نمایید.
آپاچی یک وب سرور compatible است و در لینوکس ، MacOS و ویندوز قابل پیاده سازی می باشد. تفاوت آنها در مسیرهای دایرکتوری و مراحل نصب می باشد.
آپاچی چگونه کار می کند ؟
وب سرور آپاچی بر اساس ماژول هایی که که بر روی آن نصب و پیکر بندی شده است عمل می کند و به طور پیش فرض بر روی پورت ۸۰ کار می کند .
همچنین بر روی پورت های دیگر نیز میتواند کار کند و این مسئله به وب سایت ها و دامنه های مختلف این امکان را می دهد تا با استفاده از یک سرور ، وب سایت ها و دامنه های مختلفی را سرویسدهی کنند.
مثلاً میتوان تنظیم کرد که دامنه test.com بر روی پورت ۸۰ و دامنه test2.com بر روی پورت ۸۰۸۰ و دامنه test3.com بر روی پورت ۴۴۳ همگی بر روی یک وب سرور آپاچی سرویس بدهند.
آپاچی به دلیل ساختاری که دارد برای وب سایت های دارای ترافیک سنگین با مشکلات عملکردی رو به رو می شود. Nginx یکی از وب سرور هایی است که مشکل c10k را حل می کند و تا حدودی میتوان گفت تاکنون موفقترین آنها بوده است.
نصب و راه اندازی وب سرور آپاچی در سرور مجازی
نصب وب سرور آپاچی بر روی سرور مجازی CentOS 7
نصب و راه اندازی آپاچی بر روی سرور مجازی لینوکس شامل مراحل زیر می باشد :
مرحله 1. آپدیت ورژن لینوکس سرور
ابتدا از به روز بودن سرور خود اطمینان حاصل نمایید، برای این کار دستور زیر را وارد کنید:
Sudo Yum update
مرحله2. نصب apache
با استفاده از دستور زیر پکیج های نرم افزاری آپاچی بر روی سرور مجازی شما دانلود و نصب می شود.
Sudo Yum install httpd
مرحله 3. فعالسازی آپاچی
برای این کار ابتدا باید سرویس آپاچی را بر روی سرور استارت کنید.
Sudo Systemctl start httpd
سپس با دستور زیر تنظیم می کنیم که پس از بوت شدن سرور ، سرویس آپاچی استارت شود:
Sudo systemctl enable httpd
مرحه 4. Verify کردن تنظیمات آپاچی
برای اطمینان از نصب شدن و اجرای نرم افزار آپاچی با استفاده از دستور زیر status وب سرور را مشاهده می کنیم.
Sudo systemctl status httpd
مرحله 5. کانفیگ فایروال و صدور مجوز ترافیک آپاچی
این مرحله در صورتی مورد نیاز می باشد که فایروال روی سرورمجازی لینوکسی شما فعال باشد در غیر اینصورت نیازی به انجام این مرحله نمی باشد .
ابتدا پورت هایی را که وب سرور آپاچی با آن کار میکنند را در فیروال اضافه میکنیم که عموما پورت های 80 و 443 می باشد :
Sudo firewall-cmd --zone=public --permanent --add-port=80/tcp
Sudo firewall-cmd --zone=public --permanent --add-port=443/tcp
سپس با دستور زیر فایروال را ریلود کنید:
Sudo firewall-cmd –complete-reload
نصب وب سرور آپاچی بر روی سرور مجازی (vps) پایان یافت و شما با وارد کردن IP سرور خود در مرورگر میتوانید صفحه پیشفرض وب سرور آپاچی (Apach) را مشاهده نمایید.
نصب آپاچی بر روی سرور مجازی اوبونتو 18.04
مرحله 1. آپدیت ورژن لینوکس
مانند سرور مجازی CentOS ابتدا با دستور زیر از به روز بودن پکیج های سرور اطمینان پیدا می کنیم
apt update
مرحله2. نصب apache
در این مرحله با دستور زیر آپاچی ورژن 2 را نصب می کنیم.
apt install apache2
مرحله 5. کانفیگ فایروال و صدور مجوز ترافیک آپاچی
توجه داشته باشید که تنظیمات مربوط به فایروال تنها درصورتی مورد نیاز هست که فایروال سرور شما فعال باشد در غیر اینصورت نیازی به این بخش از کانفیگ نمی باشد .
با وارد کردن دستور زیر لیست اپلیکیشن های در دسترس فایروال نمایش داده می شود.
Sudo ufw app list
همانطور که در تصویر زیر مشاهده میکنید لیست اپلیکیشن ها نمایش داده میشود .
apache : با انتخاب این پروفایل فقط پورت 80 باز می شود.
apache full : این پروفایل پورت 80 و 443 را باز می کند.
apache secure : این پروفایل تنها پورت 443 را باز می کند.
در اینجا ما فقط میخواهیم پورت 80 باز باشد پس با دستور زیر پروفایل مربوط را انتخاب مبکنبم.
ufw allow ‘apache’
همچنین به همین ترتیب میتوانیم پورت های دیگر را در فایروال allow کنیم .بطور مثال :
Ufw allow 8080
Ufw allow 81/udp
برای بستن پورت هم میتوان به جای allow در کامند بالا deny تایپ می کنیم :
Ufw deny 443
با استفاده از دستور زیر میتوان rule های فایروال را مشاده کرد:
Ufw status
به این ترتیب نصب وب سرور آپاچی بر روی سرور اوبونتو 18.04 انجام گردید. و میتوانید با وارد کردن IP سرور خود در مرور گر صفحه پیشفرض آپاچی را مشاهده نمایید.
توجه داشته باشید که نصب وب سرور آپاچی در نسخه های غیر سرور توزیع های لینوکس گفته شده نیز به همین ترنیب می باشد.
چرا سرور مجازی انتخاب بهتری برای وب سرور ما می باشد؟
سرور مجازی به دلیل برخورداری از سرعت و کیفیت بسیار بالا و اختصاص منابع واقعی متناسب با نیاز وبسایت شما انتخاب بسیار مناسبی جهت میزبانی وبسایت و وب اپلیکیشن شما می باشد .
علاوه بر این سرورهای مجازی (VPS) نسبت به سرورهای اختصاصی از لحاظ هزینه بسیار به صرفه تر میباشند چرا که امروزه کاهش هزینه یکی از فاکتورهای مهم در هر پروژه می باشد.
همچنین شما میتوانید با استفاده از سرورهای مجازی میزبان اول سیستم عامل مجزا و همچنین منابع اختصاصی خود را داشته باشید، که علاوه بر راه اندازی وب سرور آپاچی و دیگر وب سرورهای به روز و پرکاربرد ، همچنین میتوانید سرویس های دیگر خود را نیز بر روی سرور مجازی خود راه اندازی نمایید.
سوالات متداول
وب سرور به یک سیستم سخت افزاری و یا به طور خاص به نرم افزاری که درخواست های http بر روی پورت 80 و 443 را دریافت و پردازش می کند گفته می شود. هر وبسایت برای ارئه سرویس به یک وب سرور نیاز دارد.
apache یک وب سرور open source برای سیستم های لینوکسی میباشد که بدلیل ساختار ماژولار و انعطاف پذیری بالا بسیار پس از گذشت بیست سال از اولین انتشار آن همچنان بسیار مجبوب و پرکاربرد می باشد.
سرور مجازی به دلیل برخورداری از سرعت و کیفیت بسیار بالا و اختصاص منابع واقعی متناسب با نیاز وبسایت شما انتخاب بسیار مناسبی جهت میزبانی وبسایت و وب اپلیکیشن شما می باشد .
علاوه بر این سرورهای مجازی (VPS) نسبت به سرورهای اختصاصی از لحاظ هزینه بسیار به صرفه تر میباشند چرا که امروزه کاهش هزینه یکی از فاکتورهای مهم در هر پروژه می باشد.