آموزش  استفاده از Nginx به عنوان پراکسی معکوس (Reverse Proxy)

آموزش استفاده از Nginx به عنوان پراکسی معکوس (Reverse Proxy)

Nginx، به‌عنوان یک سرور وب قدرتمند، در نقش یک پراکسی معکوس نیز عملکرد بسیار خوبی دارد و در صورت تنظیم صحیح، مزایای زیادی ارائه می‌دهد. درک چگونگی استفاده از Nginx به‌عنوان یک پراکسی معکوس می‌تواند عملکرد خدمات را به‌طور چشمگیری بهینه کند و مدیریت سیستم را بهبود بخشد.

همونطور که میدانیم در حوزه خدمات وب، مدیریت مؤثر ترافیک ورودی، توزیع بار، و تأمین امنیت منابع سرور اهمیت زیادی دارد.

 Nginx، به‌عنوان یک سرور وب قدرتمند، در نقش یک پراکسی معکوس نیز عملکرد بسیار خوبی دارد و در صورت تنظیم صحیح، مزایای زیادی ارائه می‌دهد.

درک چگونگی استفاده از Nginx به‌عنوان یک پراکسی معکوس می‌تواند عملکرد خدمات را به‌طور چشمگیری بهینه کند و مدیریت سیستم را بهبود بخشد.

پراکسی معکوس چیست؟

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

این کار امنیت را افزایش می‌دهد، عملکرد را با استفاده از کش بهبود می‌بخشد، توزیع بار را بهینه می‌کند، و به استفاده بهینه از منابع سرور کمک می‌کند.

 

استفاده از Nginx به‌عنوان پراکسی معکوس

ویژگی‌های پراکسی معکوس Nginx بسیار متنوع است و قابلیت‌هایی همچون توزیع بار، کش، پایان دادن(termination) به SSL، و فشرده‌سازی محتوا را ارائه می‌دهد.

برای اینکه بهتر با پراکسی معکوس آشنا بشید مثال زیر رو با همدیگه بخونیم:

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

نحوه تنظیم Nginx برای پراکسی معکوس:

  1. نصب Nginx

  2. استفاده از Nginx در Docker
    اجرای Nginx در Docker یک فرآیند ساده است. Docker به ما این امکان رو میده تا Nginx رو در یک کانتینر اجرا کنیم و این باعث میشه مدیریت و استقرار آن ساده تر بشه.

    با دستور زیر میتونید داکر رو نصب کنید:
docker pull nginx

پس از پول کردن داکر با دستور زیر میتونید کانتینر رو ران کنید:
 

docker run -d -p 8080:8080 --name my_nginx nginx

معرفی دستورات داکر که در بالا استفاده شده:

docker run: دستوری برای ایجاد و شروع یک کانتینر جدید است.  
-d: حالت Detached که کانتینر را در پس‌زمینه اجرا می‌کند.  
-p 8080:8080: پورت 8080 میزبان را به پورت 8080 کانتینر وصل می‌کند، که به شما اجازه میده از طریق آدرس http://localhost به Nginx روی ماشین میزبان دسترسی داشته باشید.  
--name my_nginx: نام my_nginx را به کانتینر در حال اجرا اختصاص میده.  
nginx: نام تصویری(image) از Docker است که می‌خواهید برای کانتینر استفاده کنید.  


پس از اجرای دستور بالا Nginx اکنون در کانتینر Docker اجر می شود و شما  می‌توانید با باز کردن مرورگر و رفتن به آدرس http://localhost به وب‌سرور Nginx دسترسی پیدا کنید.

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

 

3. تنظیم پراکسی معکوس در Nginx
برای مثال، اگر سرویس کاربری شما روی http://localhost:5000 در حال اجرا باشد، می‌توانید Nginx را به‌گونه‌ای تنظیم کنید که درخواست‌های ورودی را به این سرویس ارسال کند.

مثال تنظیمات Nginx:

server {
    listen 8080;
    server_name localhost;

    location / {
        proxy_pass http://localhost:5000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

توضیح تنظیمات:

  • server بلوکی برای تنظیمات سرور می باشد.
  • listen 8080; به Nginx می‌گوید که به پورت 8080 برای اتصالات ورودی گوش دهد.
  • server_name localhost; تنظیمات را برای درخواست‌هایی که هدر میزبان آنها "localhost" است، اعمال می‌کند.
  • proxy_pass http://localhost:5000; درخواست‌ها را به سرویس شما که روی http://localhost:5000  است ارسال می‌کند.

مزایا

استفاده از Nginx به‌عنوان یک پراکسی معکوس مزایای متعددی دارد:

  • امنیت: ساختار داخلی سیستم شما را پنهان می‌کند و باعث می‌شود کاربران خارجی به‌طور مستقیم به سرویس‌های شما دسترسی نداشته باشند.
  • توزیع بار: Nginx می‌تواند درخواست‌های ورودی را بین چندین نمونه از سرویس شما توزیع کند و باعث بهبود عملکرد شود.
  • کش و تسریع: Nginx می‌تواند محتوا را کش کند و سرعت و کارایی سرویس‌دهی به داده‌های پرمراجعه را افزایش دهد.

 

 

در نهایت می توان گفت: Nginx یک وب سرور قدرتمند است که می‌تواند به‌عنوان یک پراکسی معکوس استفاده شود و مزایایی مانند بهبود امنیت، توزیع بار و کش محتوا را فراهم کند.

در این نقش، Nginx بین کاربران و سرورهای پس‌زمینه قرار می‌گیرد و درخواست‌های ورودی را به سرویس‌های مورد نظر هدایت می‌کند.

همچنین با استفاده از Docker می‌توان Nginx را به‌سادگی راه‌اندازی و مدیریت کرد. این تنظیمات به بهبود عملکرد، افزایش امنیت و مدیریت بهتر منابع سرور کمک می‌کند.

 

امیدوارم این مطلب برای شما مفید بوده باشه اگر نظری یا پیشنهادی دارید از بخش نظرات برای ما ارسال کنید :)


برچسب ها:

nginx docker داکر

دسته بندی ها:

سرور

ارسال نظر

برای اطلاع از پاسخ به نظر شما می توانید ایمیل یا شماره موبایل خود را وارد نمایید. *

ایمیل و شماره موبایل شما کاملا مخفی خواهد ماند و در سایت نمایش داده نخواهد شد. *

اگر نظری برای این مطلب ارسال شد از طریق ایمیل مرا اطلاع بده!
لسیت نظرات
هنوز برای این مطلب نظری ارسال نشده است!