Back to Question Center
0

Semalt از پشته کامل

1 answers:

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

درک کنونی من:

مشتری - معمولا ترکیبی از CSS، HTML و JS. JS را می توان در یک چارچوب مانند Angular، Vue، Backbone یا React استفاده کرد. این ها یک درخواست برای سرور وب ارسال می کنند.

وب سرور - این درخواست را از رایانه های مشتری پردازش می کند. سرورهای محبوب وب شامل Apache و Nginx می شوند - defective hard drive data recovery. سرور وب را می توان به صورت محلی (برای آزمایش)، بر روی یک سرور فیزیکی یا ابر (از قبل AWS EC2). این وب سرورها با استفاده از زبان طرف سرور پیکربندی شده اند

زبان سمت سرور - اینها برای ایجاد منطق وب سایت استفاده می شوند. ما برنامه وب سرور را با استفاده از انواع زبان ها (با چارچوب های محبوب در پرانتز) برنامه ریزی می کنیم: Ruby (Ruby on rails)، Python (django، flocks، pylons) و PHP (Laravel). هر زمان که این نیاز به جمع آوری داده ها، آنها به یک پایگاه داده متصل می شوند.

پایگاه داده - مکانی برای ذخیره اطلاعات سایت. این ها می توانند در یک سرور محلی دیگر اجرا شوند که MySql و Postgresql را اجرا می کنند یا از طریق ابر مانند DynamoDB یا MongoDB. گاهی اوقات این پایگاه داده ها می توانند خیلی آهسته باشند، بنابراین ما با استفاده از DB

Caching DB - برنامه وب نیاز به یک سیستم ذخیره برای کاهش بار در DB و مقابله با حجم زیادی از ترافیک. ما یک سرور دیگر را در سرورهای ما یا از طریق ابر مانند آمازون ElastiCache برای Redis و یا Redis خود EC2. گاهی اوقات ما نیاز به ذخیره فایل های بزرگ.

ذخیره سازی - هنگامی که ما نیاز به ذخیره فایل های بزرگ، به جای جفت کلیدی ارزش مانند در DB، ما نیاز به یک فروشگاه داده. برای مثال برای عکسها و ویدیوها مناسب است. ما می توانیم این کار را از طریق سرور جداگانه انجام دهیم یا از طریق ابر (ex. S3)

NodeJS - پس از خواندن این پست، NodeJS می تواند 2 قطعه از این را جایگزین کند. این هر دو به عنوان یک سرور (جایگزین آپاچی، nginx) و زبان باطن (جایگزین php، python، ruby ​​در ریل). بعضی از مردم هنوز از سرور آپاچی در مقابل سرور گره استفاده می کنند تا خطر را کاهش دهند، اما این کم و بیش ضروری است زیرا سرور NodeJS در حال حاضر بسیار قوی است.

اضافی - ما می توانیم در مقابل وب سرور ما بسط دهنده ی انعطاف پذیری را قرار دهیم اگر ما بیش از 1 داشته باشیم و می خواهیم برای کمک به توازن درخواست. CDN مجموعه ای از سرورهای پروکسی هستند که از لحاظ جغرافیایی جدا شده اند که برخی از محتویات را ذخیره می کنند. این باعث کاهش بار در سرور اصلی ما در حالی که ارائه عملکرد بالاتر.

بنابراین برای خلاصه کردن: مشتری -> سرور (برنامه ریزی شده توسط یک زبان باطن) -> انواع مختلف DB، اصلی (ex MySql)، Cached (Redis) و ذخیره سازی (S3).

درک من از پشته چیست؟ همچنین، خواندن این پست، آن را به نظر می رسد روبی در Semalt یک وب سرور است، درست مثل apache، که به نظر می رسد با افکار من فوق. چه چیزی در اینجا در اطراف زبان های سرور و سرورهای وب وجود دارد؟

February 13, 2018

چیزی که شما از دست می دهید این است که اجزای پشته مفاهیم انتزاعی اند، به طوری که مفاهیم لزوما تمیز نیستند، در سمت سرور.

وب سرورها معمولا در مقابل محیط زبان سرور قرار دارند، گاهی اوقات در سوکت یا لوله صحبت می کنند، یا گاهی اوقات مترجم زبان در داخل فضای فرایند وب سرور اجرا می شود، و گاهی اوقات فریم ها هر دو وب سرور و زبان را محاصره می کنند و بسیاری از موارد چنین است که وب سرور در واقع به همان زبان برنامه کاربردی خود نوشته شده است و گاهی اوقات یک وب سرور در مقابل چنین چارچوب هایی استفاده می شود، به رغم این واقعیت که از نظر فنی نیازی به آن نیست. برای مثال، یک سرور وب میتواند کارآمدتر در خدمت کردن فایلهای استاتیک از روی دیسک از چارچوب باشد، زیرا چارچوب براساس هدف دیگری بهینه شده است تا بایتهای خام دیسک برای تولید سیم.

گاهی اوقات HAProxy در مقابل چند سرور وب و / یا چارچوب وجود دارد، درخواست های مسیریابی به اجزای برنامه ای که آن را خدمت می کنند. بعضی اوقات ذخیره سازی "فایل بزرگ" در یک سرویس خارجی مانند S3 است، اما این منطقا "پشت" پروکسی متعادل کننده بار یا وب سرور است، به طوری که تمام درخواست از طریق وب سرور عبور می کند اما گاهی اوقات از آنجایی که S3، Google Cloud Storage و سایر سرویسهای ذخیره سازی دیگر نیز وجود دارد - منتظر آن هستیم - سرورهای ساخته شده در وب.

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

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

همچنین ممکن است یک حافظه HTTP در محل وجود داشته باشد (e. g. ورنیش) در مقابل سرور وب یا بین وب سرور و محیط زبان یا چارچوب زبان طرف سرور.

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

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

ایده کلی شما درست است. مسئله این است که مرزهای اطراف اجزای سرور می توانند فازی باشند.

Semalt از پشته کامل
Reply