مقدمه
- یکی از موارد مصرف نرمافزار 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 به صورت زیر استفاده نمایید.
|
1 2 |
# cd /opt/ # git clone http://git.homayouni.info/git/iman/desertco-nginx.git -b release |
- در ادامه وارد پوشهی desertco-nginx شوید.
|
1 |
# cd desertco-nginx |
نصب و راهاندازی پروژه desertco-nginx
- به منظور دریافت پروندههای Image مربوط به این پروژه وارد پوشهی images شوید.
|
1 |
# cd /opt/desertco-nginx/images/ |
- جهت دریافت پروندههای Image یک اسکریپت به زبان Bash تهیه شده است. آن را به صورت زیر اجرا نمایید.
|
1 |
# bash setup.sh |
- در صورتی که فرآیند بارگزاری پروندهی Image با موفقیت تمام شود، با تصویری مشابه زیر روبهرو خواهید شد.

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

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

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


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