تنظیم Reverse Proxy با استفاده از Nginx
فایلهای مورد استفاده در ویدیوی فوق، در اینجا قابل دسترسی هستند.
Reverse proxy سروری است که درخواستهای مشتریان (clients) را به یک یا چند سرور پشتیبان (backend servers) ارسال میکند و نتایج را به مشتریان بازمیگرداند. این ساختار به بهبود کارایی، توازن بار، و امنیت سرورها کمک میکند.
Nginx یک وب سرور متنباز و چندمنظوره است که به عنوان وب سرور، پروکسی معکوس (reverse proxy)، پروکسی ایمیل و load balancer مورد استفاده قرار میگیرد. Nginx به دلیل کارایی بالا، توانایی مدیریت اتصالات همزمان زیاد، و مصرف کم منابع سیستم، محبوبیت زیادی پیدا کرده است. این نرمافزار به خصوص در محیطهای با ترافیک بالا و برنامههای وب بزرگ به کار میرود و میتواند به صورت همزمان به عنوان وب سرور و پروکسی معکوس عمل کند.
شما میتوانید برنامههای Nginx خود را با ایجاد برنامههای Docker در لیارا، مستقر کنید. برای اینکار، کافیست تا در Local یک دایرکتوری با نام دلخواه بسازید، وارد دایرکتوری شوید و در آن یک فایل به نام Dockerfile ایجاد کنید و قطعه کد زیر را در آن قرار دهید:
حال، میتوانید در کنار Dockerfile، یک فایل دیگر به نام nginx.conf ایجاد کنید و درون این فایل، تنظیمات مربوط به reverse proxy را قرار دهید؛ به عنوان مثال:
در قطعه کد فوق، باید بهمنظور هدایت ترافیک، شناسه و پورت برنامهی مقصد خود را با مقادیر app-name و port در فایل nginx.conf جایگزین کنید.
در نهایت، در مسیری که Dockerfile قرار گرفته است، دستور زیر را اجرا کنید تا برنامهتان در لیارا مستقر شود:
هم برنامه داکر شامل Nginx و هم برنامه هدف شما حتماً باید درون یک شبکه خصوصی، قرار داشته باشند تا در نهایت بتوانند به یکدیگر، متصل شوند.
تنظیم مسیر tmp بهعنوان مقصدی برای ذخیرهی فایلهای موقتی
در فایل nginx.conf فوق در موارد مختلف از مسیر tmp بهعنوان مقصدی برای ذخیرهی فایلهای موقتی استفاده شده است. البته شما میتوانید مسیر دیگری را برای اینکار انتخاب کنید؛ چرا که فایلسیستم برنامههای داکر در لیارا، به صورت پیشفرض، writable است، قطعه کد زیر، نمونهای از تنظیم مسیر ذخیرهسازی، به پوشه tmp است:
تنظیم Resolver
با توجه به احتمال تغییر IP برنامه در لیارا ، تنظیم resolver در فایل nginx.conf این امکان را بهوجود میآورد تا هر بار IP جدید برنامه دریافت شده و مشکلی در هدایت ترافیک بهوجود نیاید.
در قطعه کد فوق، باید شناسه و پورت برنامهی مقصد خود را با مقادیر app-name و port در فایل nginx.conf جایگزین کنید.