ما در پچیم اعتقاد داریم که همه چیز همه جا، نیاز نیست به این معنی که اگر شما خواهان راه اندازی تنها یک سرور دیتابیس هستید، چرا باید در آن سرور Nginx و PHP برای شما نصب شود؟ برای همین ما سرورهای خود را به انواع مختلفی دستهبندی کردیم که به شرح زیر است.
در زیر به تفضیل در مورد هر کدام از این نوع از سرورها صحبت میکنیم و برای شما آنها را توضیح خواهیم داد.
در زیر یک نمای کلی از انواع سرورها و مواردی که پشتیبانی میکنند را در قالب یک جدول میتوانید مشاهده کنید.
نوع | Nginx | PHP | MySQL / Postgres / MariaDB / MongoDB | Redis, Memcached | Node.js | MeiliSearch | Send Mail |
---|---|---|---|---|---|---|---|
سرور اپلیکیشن | ✅ | ✅ | ✅ | ✅ | ✅ | ||
سرور وب | ✅ | ✅ | ✅ | ||||
سرور دیتابیس | ✅ | ||||||
سرور کش | ✅ | ||||||
سرور کارگر | ✅ | ✅ | |||||
سرور MeiliSearch | ✅ | ✅ | |||||
سرور ایمیل | ✅ | ||||||
سرور توزیع بار | ✅ |
سرور اپلیکیشن کاملترین نوع سرور در بین سرورهای دیگر است و با این دید طراحی شده تا شما بتوانید انواع وبسایتها با Stackهای مختلف از PHP/Laravel تا Nodejs و ... را با آن راهاندازی کنید.
با انتخاب این سرور بخشی از مواردی که در این نوع سرور نصب میشود به شرح زیر خواهد بود:
سرور اپلیکیشن از جمله پر استفادهترین سرورهای پچیم محسوب میشوند و اگر شما مطمئن نیستید که برای وبسایتهای خود چه نوع سروری نیاز دارید پیشنهاد میکنیم که این نوع سرور را انتخاب کنید.
البته زمانی که قصد دارید پروژه مقیاس پذیری ایجاد کند آنجا باید مجموعهای از سرورها را برای پروژه خود انتخاب کنید. برای مثال سرور دیتابیس جدا، سرور کش جدا، سرور Meilisearch جدا و برای هر سرور یک Vps یا سرور اختصاصی تهیه کنید.
در دوره آموزش ویدیو راه اندازی سرور و سایت با Pachim در مورد این موارد کامل صحبت کردهایم و بهترین انتخابها را به شما توضیح دادهایم.
سرور وب اولین قدم برای ایجاد یک پروژه مقایس پذیر است، زمانی که شما تصمیم میگیرید پروژه خود را مقیاس پذیر کنید، دیگر نیاز نیست که سرور اپلیکیشن نصب کنید. شما میتوانید برای مدیریت در خواست وب خود یک سرور وب تنها ایجاد کنید تا اپلیکیشن PHP/Laravel یا Nodejs یا ... را با آن بالا بی آورید و برای دیتابیس و کش سرورهای دیگری را تهیه کنید و در یک شبکه آنها را به هم متصل کنید.
سرور وب برای مدیریت کردن درخواستهای Http اپلیکیشن شما مورد استفاده قرار میگیرد و موارد زیر در آن نصب خواهد شد.
ما در پچیم این قابلیت را برایتان بوجود آوردهایم تا در کنار دیتابیس Mysql/MariaDB بتوانید Postgres را هم نصب و راه اندازی کنید البته که پیشنهاد ما این است که بر روی هر سرور تنها آن موردی که نیاز دارید را نصب و راه اندازی کنید.
سرور دیتابیس هماهنطور که از نامش مشخص است، تنها برای راه اندازی دیتابیس مورد استفاده قرار میگیرد و زمانی که پروژه شما یک پروژه مقایس پذیر باشد به شدت نیاز دارید که سرور دیتابیس و سرور وب خود را از هم جدا کنید که با این نوع سرور تنها دیتابیس بر روی سرور شما نصب خواهد شد و هیچ Nginx برای درخواستهای وب در آن وجود ندارد.
برای ارتباط این نوع سرور با سرورهای وب میتوانید بخش مدیریت شبکه سرورها را مطالعه کنید تا یادبگیرید چطور سرورها را به همدیگر متصل کنید تا به سادگی بتواند یک شبکه مقایس پذیر ایجاد کرد.
بر روی این سرور تنها موارد زیر نصب خواهند شد:
همانطور که از عنوان هم مشخص است، سرور کش برای زمانی است که شما قصد دارید یک پروژه مقایس پذیر ایجاد کنید و سرور کش خود را جداگانه راه اندازی کنید. که برای ارتباط این سرور با سرورهای دیگر حتما بخش مدیریت شبکه سرورها را مطالعه کنید.
با راه اندازی این سرور موارد زیر در سرور نصب خواهند شد:
چرا ما سروری با عنوان سرور کارگر ایجاد کردهایم؟ اجازه دهید با چند سناریو این مورد را به شما توضیح دهیم
سناریو اول : اگر ما پچیم را یک پروژه مقایس پذیر در نظر بگیریم، عملیاتی را در پچیم داریم که در قالب صفهای مختلف پردازش میشوند و ممکن است این صفها به حدی سنگین شوند که ما نیاز داشته باشیم چندین صف ایجاد کنیم اما اگر این صف را در سرور اصلی قرار دهیم بخاطر محدودیت منابع میتواند مشکل ساز شود برای همین سرور جداگانه ای ایجاد میکنیم تا تنها مدیریت صفها و کارهای پردازشی پروژه ما را انجام دهد. سرور کارگر دقیقا برای این مورد ایجاد شده است.
سناریو دیگر : در پروژه وبسایت آموزشی راکت سرورهای اصلی در ایران قرار دارد اما یک سری کارهای پردازشی وجود دارد که حتما نیاز است سرور مورد نظر در خارج ازش کشور قرار بگیرد تا برنامه ما بتواند به شکل کامل کار کند.
برای مثال ارتباط بر قرار کردن با ربات تلگرام: بجای آنکه ما کل سرورهای خود را به خارج کشور منتقل کنیم تا بتوانیم تنها از سرویس تلگرام استفاده کنیم. یک سرور کارگر در خارج از کشور تهیه میکنیم تا تنها صف پردازشی پیامهای تلگرام را بر عهده بگیرد به این شکل ما شبکهای از سرورها را شکل میدهیم که با سرعت عالی کار خود را انجام میدهند.
در یک سرور کارگر خبری از Nginx و درخواستهای وب نیست و موارد زیر تنها بر روی آن نصب میشوند:
MeiliSearch یک ابزار موتور قدرتمند و فوق سریع برای پیادهسازی کردن جستجو در اپلیکیشنهای شماست که ما در پچیم برای نصب MeiliSearch سرور آن را پیشنهاد میدهیم.
برای آنکه تجربه بدون نقص با MeiliSearch داشته باشید ما اجازه نصب Meilisearch در سرورهای اپلیکیشن را به شما نمیدهیم و برای اینکار لازم است یک سرور جداگانه تهیه کنید و با استفاده از پچیم MeiliSearch را بر روی آن راهاندازی کنید.
سرور توزیع بار به شدت کاربردیست و شما با استفاده از آن میتوانید ترافیک ورودی به سرور خود را بین هر تعداد سروری که میخواهید تقسیم کنید.
اجازه دهید با یک سناریو لازمه استفاده از سرور توزیع بار را برایتان توضیح دهیم.
همیشه دیدهاید که برای ثبت نامهای مختلف مثل کنکور یا خودرو سایتهای که معرفی میشوند در شروع ثبت نام بخاطر حجم زیاد افرادی که درخواست ورود به سایت را دارند از دسترسی خارج میشوند. در سرورهای توزیع بار شما میتوانید در مواقع عادی چند سرور برای تقسیم شدن بار ورودی به سرور مشخص کنید و اگر زمانی حجم درخواستهای شما بالا رفت خیلی راحت میتوانید سرورهای دیگری را هم به لیست سرورهای قبلی خود اضافه کنید با اینکار بجای آنکه یک سرور پاسخ دهنده درخواست کاربران شما باشند چندین سرور این کار را میکنند و شما در عمل یک پروژه مقایس پذیر بوجود آوردهاید.
برای آشنایی بیشتر با موضوع توزیع بار حتما بخش پیکربندی توزیع بار در مستندات را مطالعه کنید.
ارسال و دریافت ایمیل برای هر پروژهای همیشه بحث بسیار مهمی بوده که پیادهسازی کردن پیکربندی مناسب برای انجام آن سختیهای بسیار زیادی را دارد، اما ما در پچیم سعی کردهایم با آمادهسازی سرورهای برای این موضوع به شما کمک کنیم تا برای پروژههای خود این موضوع را به سادگی پیادهسازی کنید.
اگر شما یکی از شرایط زیر را دارا هستید قطعا این نوع سرورها میتوانند به شما کمک کنند.
ما برای رفع نیاز خود برای ارسال و دریافت ایمیل از سرور ایمیل پچیم استفاده میکنیم و پیشنهاد میکنم حتما این نوع سرورها را تست کنید.
برای آشنایی بیشتر با موارد و نکات لازم برای راهاندازی سرورهای ایمیل به مستندات ارسال و دریافت ایمیل مراجعه کنید.