توضیحات تکمیلی پروژه‌ی desertco-nginx

مقدمه

  • یکی از موارد مصرف نرم‌افزار Nginx استفاده از آن به عنوان Web Server می‌باشد اما این نرم‌افزار امکانات بیشتری نظیر Reverse Proxy به منظور ارائه‌ی سیستم Cache ، تولید گواهی‌های https ، پیاده‌سازی مکانیزم دفاعی WAF ، ایجاد Load Balance و … در اختیار مخاطبان این نرم افزار قرار می‌دهد.

مقدمه‌ای بر پروژه‌ی desertco-nginx

  • پروژه‌ی desertco-nginx به منظور راه‌اندازی نرم‌افزار Nginx تحت بستر Docker به عنوان نوعی Reverse Proxy فراهم شده است.
  • مکانیرم کاری Reverse Proxy بدین صورت است که در جلوی نرم‌افزار Backend قرار گرفته و خدماتی نظیر Cache ، تولید گواهی‌های https ، پیاده‌سازی مکانیزم دفاعی WAF ، ایجاد Load Balance و … را ارائه می‌دهد.
  • لازم به ذکر است که کاربرد این پروژه تنها برای استفاده در جلوی وب‌سایت‌ها به منظور ارائه‌ی خدمات ذکر شده، می‌باشد.
  • به عنوان نمونه پروژه‌ی desertco-nginx در جلوی سیستم WordPress این سامانه (kb.homayouni.info) قرار گرفته است.

دریافت پروژه‌ی desertco-nginx

  • به منظور دریافت پروژه از ابزار git به صورت زیر استفاده نمایید.
# cd /opt/
# git clone http://git.homayouni.info/git/iman/desertco-nginx.git -b release
  • در ادامه وارد پوشه‌ی desertco-nginx شوید.
# cd desertco-nginx

نصب و راه‌اندازی پروژه desertco-nginx

  • به منظور دریافت پرونده‌های Image مربوط به این پروژه وارد پوشه‌ی images شوید.
# cd /opt/desertco-nginx/images/
  • جهت دریافت پرونده‌های Image یک اسکریپت به زبان Bash تهیه شده است. آن را به صورت زیر اجرا نمایید.
# bash setup.sh
  • در صورتی که فرآیند بارگزاری پرونده‌ی Image با موفقیت تمام شود، با تصویری مشابه زیر روبه‌رو خواهید شد.

پیکربندی پروژه desertco-nginx

# cd /opt/desertco-nginx/nginx/
  • به منظور ساخت گواهی SSL وارد پوشه‌ی certs شوید.
# cd certs/
  • جهت ساخت گواهی SSL یک اسکریپت به زبان Bash تهیه شده است که گواهی‌های مورد نیاز را تهیه می‌کند.
  • برای استفاده از این اسکریپت به صورت زیر عمل نمایید.
# bash create_new.sh
  • با اجرای این اسکریپت سوالاتی به منظور تهیه‌ی گواهی SSL پرسیده می‌شود. آن‌ها را با دقت جواب دهید.
  • به عنوان نمونه به تصویر زیر توجه نمایید.

  • به منظور اعمال تنظیمات پیش‌رفته وارد پوشه‌ی conf.d شوید.
# cd /opt/desertco-nginx/nginx/
# cd conf.d/
  • پرونده‌ی default.conf حاوی تنظیمات پیش‌فرض پروژه‌ی desertco-nginx می‌باشد.
  • پرونده‌ی nginx.conf حاوی تنظیمات اختصاصی می‌باشد. پیشنهاد می‌شود اسم این پرونده را برابر با نام پروژه‌ی اصلی‌ای که قصد استفاده از آن را دارید قرار دهید.
  • به عنوان مثال می‌توان اسم پرونده‌ی nginx.conf را با gitbucket.conf تغییر داد.
  • در ادامه پرونده‌ی nginx.conf را با یک ویرایشگر باز نمایید.
# vim nginx.conf
  • در خط سوم در مقابل عبارت server_name اشاره با نام دامنه‌ی مورد استفاده برای پروژه شده است.
  • مقدار پیش‌فرض این مقدار برابر با nginx.homayouni.info است که باید متناسب با سناریوی موجود تغییر یابد.
  • همچنین همین روند باید برای خط نهم طی شود.
   ...
   server_name nginx.homayouni.info;
   ...
  • در خط بیستم اشاره به نرم‌افزار یا ابزاری شده است که اصطلاحا قرار است در Background به اجرا گذاشته شود.
  • به عنوان مثال با نصب و راه‌اندازی پروژه‌ی desertco-gitbucket ، سامانه‌ی GitBucket تحت پروتکل TCP بر روی پورت 8080 واقع در Localhost شروع به سرویس‌دهی می‌کند.
  • در این سناریو نیاز است که مقدار خط بیستم یعنی proxy_pass برابر با آدرسی که سامانه‌ی GitBucket سرویس‌دهی می‌کند قرار گیرد.
   ...
   proxy_pass http://localhost:8080;
   ...
  • نمایی از پرونده‌ی nginx.conf در حالت پیش‌فرض به صورت زیر است.

تصاویر پروژه‌ی desertco-gitbucket


  • این مستند تحت شرایط سیستم‌عامل Ubuntu 20.04 – Focal در سمت Server بررسی شده است.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *