نصب Nginx Proxy Manager - راهنمای راه اندازی 2 دقیقه ای
خدمات شما در حال حاضر در آدرسهای زشتی مانند 192.168.1.50:8080 زندگی میکنند. Nginx Proxy Manager آنها را با HTTPS رایگان به نامهای تمیزی مانند app.yourdomain.com تبدیل میکند - با یک فایل Docker Compose نصب شده و به جای فایلهای پیکربندی دستنویس، از یک پانل وب ساده مدیریت میشود.
📑فصلها
- کاری که یک پروکسی معکوس انجام می دهد - یک در برای همه خدمات شما
- آنچه قبل از شروع نیاز دارید - Docker، دامنه و پورت های قابل دسترسی
- قبل از نصب هر چیزی DNS دامنه خود را به سرور نشان دهید
- پوشه و فایل docker-compose.yml را ایجاد کنید
- Nginx Proxy Manager را با یک فرمان راه اندازی کنید
- اولین ورود - مرحله حساب مدیریت همه اشتباه می کنند
- اولین میزبان پراکسی خود را فیلد به فیلد ایجاد کنید
- گواهی رایگان Lets Encrypt HTTPS را دریافت کنید و Force SSL را روشن کنید
📋 بررسی اجمالی و راهنمای گام به گام
آنچه شما قبل از شروع نیاز دارید
قبل از اینکه Nginx Proxy Manager (NPM) بتواند کار کند، باید سه چیز وجود داشته باشد. اول، یک سرور لینوکس یا رایانه شخصی با Docker و Docker Compose از قبل نصب شده و کار می کند - NPM به عنوان یک ظرف اجرا می شود، نه به عنوان یک برنامه معمولی. دوم، نام دامنه ای که می توانید DNS آن را ویرایش کنید، زیرا هر سرویسی زیردامنه خود را دارد. سوم، روتر یا فایروال ابری شما باید بتواند پورت های 80 و 443 را به این دستگاه ارسال کند.
DNS دامنه خود را ابتدا به سرور هدایت کنید
NPM ترافیک را بر اساس نام مسیریابی میکند، و Lets Encrypt گواهیها را فقط برای نامهایی صادر میکند که به طور قابل اثباتی به دستگاه شما اشاره میکنند - بنابراین قبل از اینکه چیزی روی آن بسازید، نام باید حل شود. در ثبت کننده یا میزبان DNS خود، یک یک رکورد اضافه کنید: نام فقط کلمه زیر دامنه است (به عنوان مثال برنامه) و مقدار آدرس IP عمومی سرور شما است. هر سرویس رکورد خود را دارد و همه آنها می توانند به یک IP اشاره کنند - NPM خدمات را بعداً با نام جدا می کند. یک TTL کوتاه مانند 300 ثانیه در حین آزمایش تنظیم کنید، بنابراین اشتباهات به جای ساعت ها در عرض چند دقیقه محو می شوند.
قبل از ادامه، آن را ثابت کنید: بررسی کنید که نام به IP عمومی شما از یک شبکه خارجی (به عنوان مثال از تلفن شما با Wi-Fi خاموش) مشخص شود. درخواست گواهی در برابر ضایعات DNS شکسته اجازه میدهد تا تلاشها را رمزگذاری کنیم، و شکستهای مکرر میتواند شما را برای ساعتها محدود کند. ترتیب مهم است: اول DNS، دوم میزبان پروکسی، سوم گواهی.
پوشه و فایل Compose را ایجاد کنید
یک پوشه برای NPM روی سرور بسازید و فایل زیر را به عنوان docker-compose.yml در داخل آن ذخیره کنید. این تک فایل نصب کامل است. نام تصویر تصویر رسمی جامعه است. پورت های 80 و 443 درهای عمومی هستند، پورت 81 پنل مدیریت است، و دو جلد محل زندگی کل تنظیمات شما هستند: ./data پایگاه داده را با تمام میزبان های پروکسی شما نگه می دارد و ./letsencrypt گواهی های شما را نگه می دارد. آن دو پوشه را از دست بدهید و کل تنظیمات را از دست بدهید - پس از اجرا از آنها پشتیبان بگیرید.
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 را به طور خودکار پس از راه اندازی مجدد باز می گرداند.
Nginx Proxy Manager را راه اندازی کنید
از داخل آن پوشه، دستور start را اجرا کنید. داکر تصویر را دانلود میکند و ظرف را در پسزمینه راهاندازی میکند.
docker compose up -d
بررسی کنید که در حال اجرا است:
docker ps
شما باید کانتینر لیست شده با پورت های 80، 443 و 81 را ببینید. در یک سرور کوچک اولین شروع یک یا دو دقیقه طول می کشد تا پایگاه داده ایجاد شود. اگر کانتینر به راهاندازی مجدد ادامه دهد، گزارشها دلیل را به زبان ساده نشان میدهند:
docker compose logs
نه بار از ده بار حلقه راه اندازی مجدد پورتی است که قبلاً توسط چیز دیگری در هاست استفاده شده است - معمولاً یک وب سرور قدیمی هنوز در حال اجرا است.
ورود اول - حساب کاربری مدیریت را فورا ایمن کنید
پنل مدیریت را در یک مرورگر در شبکه خود باز کنید:
http://your-server-ip:81
این کار را در دقیقه اول انجام دهید. بسته به ساخت، NPM یا از شما میخواهد که جزئیات شناخته شده مدیر ورود به سیستم را با ایمیل خود و یک رمز عبور قوی جایگزین کنید، یا - در ساختهای جدیدتر بدون حساب پیشفرض - اولین فردی که صفحه مدیریت را باز میکند، سرپرست را ایجاد میکند. در هر صورت قانون یکسان است: در لحظه شروع کانتینر، قبل از ایجاد هر چیز دیگری، حساب مدیریت خود را راهاندازی کنید و از یک صندوق پستی واقعی استفاده کنید - ایمیلهای NPM که مشکلات گواهی را نشان میدهند.
اولین هاست پروکسی خود را ایجاد کنید
در 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 خاموش، بنابراین مسیر عمومی واقعی را آزمایش کنید.
localhost اشتباه است (در داخل کانتینر NPM، localhost به معنای خود NPM است) - از IP LAN سرور با پورت منتشر شده استفاده کنید، یا هر دو کانتینر را در یک شبکه Docker قرار دهید و از نام کانتینر استفاده کنید.گواهی رایگان 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 هدایت می کند. بدون آن درب رمزگذاری نشده در کنار درب رمزگذاری شده باز می ماند.
🏷️متغیرها و کلمات کلیدی جستجوی موضوع
🎙️ رونوشت کامل — برای بزرگ کردن ضربه بزنید
__TOK_34__
__TOK_35__
__TOK_36__
❓ سوالات متداول
آیا این آموزش 100% رایگان است؟
__TOK_37__
آیا مبتدیان می توانند از این راهنما پیروی کنند؟
__TOK_38__
اگر گیر کردم کجا می توانم سوال بپرسم؟
__TOK_39__