Technical Anshu صفحه اصلی › آموزش › نصب مدیر پروکسی Nginx
🐳 Docker Reverse Proxy

نصب Nginx Proxy Manager - راهنمای راه اندازی 2 دقیقه ای

خدمات شما در حال حاضر در آدرس‌های زشتی مانند 192.168.1.50:8080 زندگی می‌کنند. Nginx Proxy Manager آنها را با HTTPS رایگان به نام‌های تمیزی مانند app.yourdomain.com تبدیل می‌کند - با یک فایل Docker Compose نصب شده و به جای فایل‌های پیکربندی دست‌نویس، از یک پانل وب ساده مدیریت می‌شود.

✍️ Technical Anshu🐳 Docker Compose🎧 Multi-Language Audio
نصب Nginx Proxy Manager - راهنمای راه اندازی 2 دقیقه ای
🎧 Multi-Language Audio: Video player [Settings] (⚙️) ➔ [Audio Track]

📑فصل‌ها

  1. کاری که یک پروکسی معکوس انجام می دهد - یک در برای همه خدمات شما
  2. آنچه قبل از شروع نیاز دارید - Docker، دامنه و پورت های قابل دسترسی
  3. قبل از نصب هر چیزی DNS دامنه خود را به سرور نشان دهید
  4. پوشه و فایل docker-compose.yml را ایجاد کنید
  5. Nginx Proxy Manager را با یک فرمان راه اندازی کنید
  6. اولین ورود - مرحله حساب مدیریت همه اشتباه می کنند
  7. اولین میزبان پراکسی خود را فیلد به فیلد ایجاد کنید
  8. گواهی رایگان Lets Encrypt HTTPS را دریافت کنید و Force SSL را روشن کنید

📋 بررسی اجمالی و راهنمای گام به گام

1

آنچه شما قبل از شروع نیاز دارید

قبل از اینکه Nginx Proxy Manager (NPM) بتواند کار کند، باید سه چیز وجود داشته باشد. اول، یک سرور لینوکس یا رایانه شخصی با Docker و Docker Compose از قبل نصب شده و کار می کند - NPM به عنوان یک ظرف اجرا می شود، نه به عنوان یک برنامه معمولی. دوم، نام دامنه ای که می توانید DNS آن را ویرایش کنید، زیرا هر سرویسی زیردامنه خود را دارد. سوم، روتر یا فایروال ابری شما باید بتواند پورت های 80 و 443 را به این دستگاه ارسال کند.

📌 درباره "2 دقیقه" در عنوان: خود شروع کانتینر واقعاً سریع است - اما فقط زمانی که Docker قبلاً نصب شده باشد و آماده سازی در این راهنما انجام شده باشد. در یک ماشین تازه، زمان مناسب را برای مراحل راه اندازی، DNS و گواهی در نظر بگیرید. مجموع صادقانه بیش از دو دقیقه است.
⚠️ در اتصال خانگی پشت CGNAT، ارسال پورت به هیچ وجه نمی تواند کار کند - هیچ تنظیمی در NPM آن را برطرف نمی کند. سپس گزینه های صادقانه عبارتند از یک IP عمومی/استاتیک از ISP شما، یک VPS کوچک اجاره ای، یا یک ابزار تونل. این بررسی را نادیده نگیرید: نیمی از داستان های "NPM کار نمی کند" در واقع داستان های "پورت ها هرگز به سرور نرسیده اند".
2

DNS دامنه خود را ابتدا به سرور هدایت کنید

NPM ترافیک را بر اساس نام مسیریابی می‌کند، و Lets Encrypt گواهی‌ها را فقط برای نام‌هایی صادر می‌کند که به طور قابل اثباتی به دستگاه شما اشاره می‌کنند - بنابراین قبل از اینکه چیزی روی آن بسازید، نام باید حل شود. در ثبت کننده یا میزبان DNS خود، یک یک رکورد اضافه کنید: نام فقط کلمه زیر دامنه است (به عنوان مثال برنامه) و مقدار آدرس IP عمومی سرور شما است. هر سرویس رکورد خود را دارد و همه آنها می توانند به یک IP اشاره کنند - NPM خدمات را بعداً با نام جدا می کند. یک TTL کوتاه مانند 300 ثانیه در حین آزمایش تنظیم کنید، بنابراین اشتباهات به جای ساعت ها در عرض چند دقیقه محو می شوند.

قبل از ادامه، آن را ثابت کنید: بررسی کنید که نام به IP عمومی شما از یک شبکه خارجی (به عنوان مثال از تلفن شما با Wi-Fi خاموش) مشخص شود. درخواست گواهی در برابر ضایعات DNS شکسته اجازه می‌دهد تا تلاش‌ها را رمزگذاری کنیم، و شکست‌های مکرر می‌تواند شما را برای ساعت‌ها محدود کند. ترتیب مهم است: اول DNS، دوم میزبان پروکسی، سوم گواهی.

3

پوشه و فایل Compose را ایجاد کنید

یک پوشه برای NPM روی سرور بسازید و فایل زیر را به عنوان docker-compose.yml در داخل آن ذخیره کنید. این تک فایل نصب کامل است. نام تصویر تصویر رسمی جامعه است. پورت های 80 و 443 درهای عمومی هستند، پورت 81 پنل مدیریت است، و دو جلد محل زندگی کل تنظیمات شما هستند: ./data پایگاه داده را با تمام میزبان های پروکسی شما نگه می دارد و ./letsencrypt گواهی های شما را نگه می دارد. آن دو پوشه را از دست بدهید و کل تنظیمات را از دست بدهید - پس از اجرا از آنها پشتیبان بگیرید.

docker-compose.yml
services:
  app:
    image: 'jc21/nginx-proxy-manager:latest'
    restart: unless-stopped
    ports:
      - '80:80'
      - '443:443'
      - '81:81'
    volumes:
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt

خط restart: unless-stop NPM را به طور خودکار پس از راه اندازی مجدد باز می گرداند.

4

Nginx Proxy Manager را راه اندازی کنید

از داخل آن پوشه، دستور start را اجرا کنید. داکر تصویر را دانلود می‌کند و ظرف را در پس‌زمینه راه‌اندازی می‌کند.

Terminal
docker compose up -d

بررسی کنید که در حال اجرا است:

Terminal
docker ps

شما باید کانتینر لیست شده با پورت های 80، 443 و 81 را ببینید. در یک سرور کوچک اولین شروع یک یا دو دقیقه طول می کشد تا پایگاه داده ایجاد شود. اگر کانتینر به راه‌اندازی مجدد ادامه دهد، گزارش‌ها دلیل را به زبان ساده نشان می‌دهند:

Terminal
docker compose logs

نه بار از ده بار حلقه راه اندازی مجدد پورتی است که قبلاً توسط چیز دیگری در هاست استفاده شده است - معمولاً یک وب سرور قدیمی هنوز در حال اجرا است.

5

ورود اول - حساب کاربری مدیریت را فورا ایمن کنید

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

Browser Address Bar
http://your-server-ip:81

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

⚠️ هرگز پورت 81 را در دسترس عموم قرار ندهید تا زمانی که آن را بعداً تمام کنید. هر کسی در اینترنت که پانل را پیدا کند ابتدا صاحب پروکسی شما می شود. پنل مدیریت را فقط در شبکه خود نگه دارید.
6

اولین هاست پروکسی خود را ایجاد کنید

در NPM Hosts → Proxy Host → Add Proxy Host را باز کنید و فرم را به صورت یک جمله پر کنید - "این نام به آن سرویس داخلی می رود":

نام دامنه: app.yourdomain.com - نام عمومی دقیق مرحله 2، که از قبل باید در سرور شما حل شود.
طرح: http برای اکثر برنامه‌های خانگی و اداری. طرح ارتباط بین NPM و سرویس داخلی را توصیف می کند، نه آنچه بازدیدکنندگان از آن استفاده می کنند - NPM رمزگذاری عمومی را در درب کنترل می کند. فقط زمانی https را در اینجا انتخاب کنید که خود برنامه داخلی HTTPS را ارائه کند.
Forward Hostname / IP: آدرس داخلی سرویس، به عنوان مثال 192.168.1.50.
پورت فوروارد: پورتی که سرویس واقعاً به آن گوش می دهد، به عنوان مثال 8080 - نه 80 یا 443. اینها درهای NPM هستند، نه خدمات.

Block Common Exploits و سپس Save را روشن کنید. فوراً با باز کردن نام در مرورگر آزمایش کنید - در حالت ایده‌آل از تلفن خود با Wi-Fi خاموش، بنابراین مسیر عمومی واقعی را آزمایش کنید.

✅ یک 502 Bad Gateway از NPM یک تابلوی راهنما است، نه یک شکست: به این معنی است که دنیای خارج کاملاً به NPM رسیده است و فقط آخرین پرش داخلی - نام میزبان یا پورت - اشتباه است. آن فیلد را اصلاح کنید، نه کل تنظیمات را. یک دام دیگر: اگر سرویس در کانتینر Docker دیگری اجرا شود، localhost اشتباه است (در داخل کانتینر NPM، localhost به معنای خود NPM است) - از IP LAN سرور با پورت منتشر شده استفاده کنید، یا هر دو کانتینر را در یک شبکه Docker قرار دهید و از نام کانتینر استفاده کنید.
7

گواهی رایگان Lets Encrypt HTTPS را دریافت کنید

این کار را فقط زمانی انجام دهید که میزبان ساده از مرحله 6 قبلاً کار کند - HTTPS در یک میزبان خراب به شما یک هاست خراب با یک گواهی و دو برابر مکان هایی را برای جستجوی عیب می دهد. همان میزبان پراکسی را باز کنید، به برگه SSL بروید، گواهینامه SSL را روی درخواست گواهی SSL جدید تنظیم کنید، اجباری SSL و پشتیبانی HTTP/2 را فعال کنید، با شرایط سرویس Lets Encrypt موافقت کنید و ذخیره کنید. بارگیری مجدد سایت - مرورگر اکنون باید قفل را در https نشان دهد.

چگونه کار می کند: Lets Encrypt با درخواست از سرور خود از طریق اینترنت عمومی در پورت 80، نشان می دهد که یک توکن یک بار مصرف (چالش HTTP-01) را نشان می دهد، ثابت می کند که شما نام را کنترل می کنید. به همین دلیل است که DNS به شما و یک پورت قابل دسترسی 80 غیرقابل مذاکره هستند - یکی از آنها شکست بخورد و درخواست شکست بخورد، و خطا در تنظیمات است، هرگز در Lets Encrypt. SSL اجباری هر بازدیدکننده http را به طور خودکار به https هدایت می کند. بدون آن درب رمزگذاری نشده در کنار درب رمزگذاری شده باز می ماند.

📌گواهی ها ۹۰ روز زنده هستند و NPM به طور خودکار آنها را تمدید می کند، معمولاً حدود یک ماه قبل از انقضا، با استفاده از همان گواهی پورت-۸۰. اگر تمدید نشد، ابتدا دلایل خسته کننده را بررسی کنید: DNS تغییر کرد، ارسال روتر حذف شد یا پورت 80 مسدود شد. HSTS را فقط زمانی فعال کنید که یک سرویس تسویه شود و تمدید آن ثابت شود - این وعده قوی ای است که مرورگرها برای ماه ها به خاطر بسپارند.

🏷️متغیرها و کلمات کلیدی جستجوی موضوع

🔍 Nginx Proxy Manager 🔍 Reverse Proxy 🔍 Docker Compose 🔍 Lets Encrypt 🔍 Free HTTPS 🔍 Proxy Host 🔍 TechnicalAnshu 🔍 Self Hosting 🔍 Subdomain Setup 🔍 Port 80 443 81 🔍 Force SSL 🔍 Home Server
🎙️ رونوشت کامل — برای بزرگ کردن ضربه بزنید

__TOK_34__

__TOK_35__

__TOK_36__

❓ سوالات متداول

آیا این آموزش 100% رایگان است؟

__TOK_37__

آیا مبتدیان می توانند از این راهنما پیروی کنند؟

__TOK_38__

اگر گیر کردم کجا می توانم سوال بپرسم؟

__TOK_39__

🚀 آموزش کامل را در YouTube تماشا کنید

__TOK_40__

__TOK_41__

▶️ تماشای ویدیوی کامل
این آموزش مبتنی بر تکنیکال Anshu's Nginx Proxy Manager Install ویدیو است • آیا در هر مرحله ای گیر کرده اید؟ در نظرات ویدیو بپرسید - در آنجا کمک خواهید گرفت 🙏