Nginx

Nginx چیست؟

Nginx میتواند در نقش webserver باشد .این اولین کارکرد nginx است .

انرا میتوانیم از src نصب کنیم و یا توسط Package Manager ها و یا همچنین فایل RPM ان را دانلود کنیم .

نکته:اگر میخواهی که همیشه اخرین نسخه ی ان را داشته باشی میتوانی از source ان را بگیری چرا که repository  ها همیشه اپدیت تر هستند .

Feature ها در Nginx:

یک Storage را در نظر بگیریم .

زمانی که میخواهیم HA راه اندازی کنیم و یا Reverse Proxy , loadbalancing داشته باشیم باید Storage مان Share باشد .

یعنی همه ی اینها بروند از یک نقطه اطلاعات بگیرند .این Storage هم NFS ای است .

فرض کنیم storage مان Linux ای است و webcontent هم داخل ان است و ان را بر روی 2 تا nginx مانت میکنیم .

توجه داشته باشیم که نقش nginx ها در این سناریو web server است .

حال میتوانیم کار را همین جا به اتمام برسانیم .

و یا میتوانیم بین این 2 nginx هم HA را Run کنیم  توسط keepalived که در صورتی که یک گروه vrrp را run کنیم به صورت Active-Passive خواهد بود .

همجنین  میتوانیم 2 گروه VRRP را Run کینم که در این صورت برای گروه VRRP1 به این شکل خواهد بود که Nginx01 در نقش Active و Nginx02 در نقش Slave خواهد بود

و برای گروه VRRP2 هم Nginx01 در نقش Passive و Nginx02 در نقش Active خواهد بود .

همچنین میتوانیم یک لایه دیگر جلوی هر دو  Nginx اضافه کنیم تا Load را پخش کند به این معنا که 2 Nginx در نقش Reverse Proxy قرار دهیم تا بین 2 nginx  ای که در نقش web server  هستند Load Balance انجام دهد .

حال این Loadbalance میتوتنیم بر روی حالت Round Robin و یا Least Connection و یا Balance و … قرار دهیم.

همچنین بر روی LoadBalancing میتوانیم همه ی این موارد را با Health Check بزنیم . به این معنا که اگر WebServer های پشتی جواب نداد دیگر به سمت ان ترافیک ارسال نمیکند .

Cache در Nginx

می توانیم در nginx های در نقش Reverse Proxy  با فعال کردن Cache بر روی رم و یا هارددیسک Read/Write بر روی  Storage را کم کنیم .

فرض کنیم در پروژه مان  60 مگابایت web اراعه میدهیم .

کدام harddisk میتواند 60 مگابایت پهنای باند اراعه دهد؟کدام ارتباط شبکه ای میتواند در این حد پهنای باند اراعه دهد؟

در این سناریو و شکل های رسم شده سرور های Backend کل website را اراعه می دهد .در صورتی که میتوانیم 2 nginx دیگر قرار دهیم تا فقط عکس هارا اراعه دهد و همچنین 2 nginx دیگر که فقط API را اراعه دهد .

و LoadBalancer های جلو میدانند که اگر کاربر در Request اش نوشته Image در این صورت ترافیک را به سمت سروری که عکس را اراعه می دهد هدایت میکند .

Feature ها در Nginx:

  • LoadBalancing

  • Reverse Proxy with Caching

  • SSL Termination