Skip to main content

Nginx

Nginx چیست؟

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

ساخت اپ Nginx در دارکوب

ساخت در دارکوب

به صفحه دارکوب در کنسول هم‌روش مراجعه کنید. سپس در قسمت «ساخت اپ»، ذیل «ساخت اپ آماده»، Nginx را انتخاب کنید. در این مرحله، نام و زیردامنه‌ای برای نسخه انجین‌ایکس خود برگزینید.

انتخاب پلن

در صفحه بعد، پس از انتخاب پلن مورد نظر، گزینه «ساخت اپ» را انتخاب کنید. پس از اندکی، نسخه انجین‌ایکس شما مستقر خواهد‌ شد.

در این مرحله اگر به آدرس اپ خود (https://yoursubdomain.darkube.app) مراجعه کنید، صفحه زیر به نمایش درمی‌آید که حاکی از ارتباط موفق انجین‌ایکس است.

تغییر تنظیمات انجین‌ایکس

در حالت اولیه، اپ شما از تنظیمات پیش‌فرض انجین‌ایکس در فایل etc/nginx/nginx.conf استفاده می‌کند. شما می‌توانید این فایل را ویرایش کرده و تنظیمات مورد نظر خود را بنویسید. برای این کار، وارد صفحه اپ خود شده و از منوی کناری، گزینه Config را بزنید. تنظیمات فعلی اپ در ادیتور قابل مشاهده و ویرایش است.

دیپلوی سایت استاتیک با انجین‌ایکس

برای رسیدن به این هدف، به جای ساخت اپ آماده انجین‌ایکس، از امکان ساخت اپ با منبع گیت در دارکوب استفاده می‌کنیم؛ به این ترتیب که در داکرفایل، ایمیج اختصاصی انجین‌ایکس را می‌گیریم. همچنین تنظیمات مورد نیاز انجین‌ایکس را در یک پوشه جدا کنار پروژه قرار داده و آن را با پوشه تنظیمات پیش‌فرض انجین‌ایکس جایگزین می‌کنیم.

فایل‌های پروژه خود را در پوشه‌ای به نام project قرار دهید. سپس در کنار همین پوشه، یک پوشه جدید به نام nginx-configs ایجاد کنید. در پوشه nginx-configs، فایلی با نام settings.conf ساخته و تنظیمات زیر را در آن کپی کنید.

server {
listen 80;
server_name localhost;

root /project;

location / {
index index.html;
}

error_page 500 502 503 504 /error.html;
location = /error.html {
index error.html;
}
}

در اینجا مشخص کردیم که برای دسترسی به اپ، از پورت ۸۰ روی localhost استفاده شود. سپس گفتیم که فایل‌های پروژه، در پوشه project قرار دارند. قسمت location نشان می‌دهد که در صورت دسترسی به دامنه بدون subpath، باید صفحه index.html در پوشه project نشان داده شود. همچنین اگر خطای ۵۰۰ یا هرکدام از دیگر خطاهای لیست شده را بگیریم، صفحه error.html در پوشه project نمایش داده خواهد شد. شما می‌توانید هرکدام از این تنظیمات را بسته به نیاز خود تغییر دهید. برای آشنایی بیشتر با دیگر تنطیمات انجین‌ایکس، به ویکی انجین‌ایکس مراجعه کنید.

در کنار دو پوشه‌‌ای که ساختید، داکرفایل را ایجاد کنید.

FROM hub.hamdocker.ir/nginx:1.22.0
COPY ./project ./project
RUN rm ../etc/nginx/conf.d/default.conf
COPY ./nginx-configs ../etc/nginx/conf.d

در خط اول، ایمیج اختصاصی انجین‌ایکس را دریافت کرده‌‌ایم. همچنین فایل‌های پروژه را در پوشه project روی ایمیج، کپی کردیم. به صورت پیش‌فرض، فایل‌های تنظیمات انجین‌ایکس در پوشه etc/nginx/conf.d قرار می‌گیرند و همه آنها در داخل فایل اصلی تنظیمات یعنی nginx.conf، include خواهند شد. در ابتدا، فقط یک فایل به نام default.conf در این پوشه وجود دارد. در اینجا ما این فایل را پاک کردیم و فایل‌های تنظیمات خودمان یعنی محتویات پوشه nginx-configs را به جای گذاشتیم.

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

هنگام ساخت اپ، پورت ۸۰ را برای اپ خود انتخاب کنید. حالا می‌توانید با مراجعه به آدرس دامنه‌ای که انتخاب کردید، صفحه اول سایت خود را ببینید!