Technical Anshu หน้าแรก > บทช่วยสอน > ติดตั้ง Nginx Proxy Manager
🐳 พร็อกซีย้อนกลับนักเทียบท่า

การติดตั้ง Nginx Proxy Manager - คู่มือการตั้งค่า 2 นาที

ขณะนี้บริการของคุณอยู่ในที่อยู่ที่น่าเกลียดเช่น 192.168.1.50:8080 Nginx Proxy Manager เปลี่ยนชื่อให้เป็นชื่อที่เรียบง่าย เช่น app.yourdomain.com ด้วย HTTPS ฟรี - ติดตั้งด้วยไฟล์ Docker Compose หนึ่งไฟล์ และจัดการจากแผงเว็บธรรมดา แทนไฟล์กำหนดค่าที่เขียนด้วยมือ

✍️ Technical Anshu🐳 Docker Compose🎧 Multi-Language Audio
การติดตั้ง Nginx Proxy Manager - คู่มือการตั้งค่า 2 นาที
🎧 Multi-Language Audio: Video player [Settings] (⚙️) ➔ [Audio Track]

📑บทต่างๆ

  1. สิ่งที่ Reverse Proxy ทำ - ประตูเดียวสำหรับบริการทั้งหมดของคุณ
  2. สิ่งที่คุณต้องการก่อนเริ่มต้น - นักเทียบท่า โดเมน และพอร์ตที่เข้าถึงได้
  3. ชี้ DNS โดเมนของคุณไปที่เซิร์ฟเวอร์ก่อนที่จะติดตั้งสิ่งใด
  4. สร้างโฟลเดอร์และไฟล์ docker-compose.yml
  5. เริ่ม Nginx Proxy Manager ด้วยคำสั่งเดียว
  6. เข้าสู่ระบบครั้งแรก - ขั้นตอนที่บัญชีผู้ดูแลระบบทุกคนทำผิด
  7. สร้างพร็อกซีโฮสต์แรกของคุณ ทีละฟิลด์
  8. รับใบรับรอง Lets Encrypt HTTPS ฟรี และเปิดใช้ Force SSL

📋 ภาพรวมและคำแนะนำทีละขั้นตอน

1

สิ่งที่คุณต้องการก่อนเริ่มต้น

ต้องมีสามสิ่งก่อนที่ Nginx Proxy Manager (NPM) จะสามารถทำงานได้ ขั้นแรก เซิร์ฟเวอร์ Linux หรือพีซีที่มี Docker และ Docker Compose ติดตั้งและทำงานอยู่แล้ว - NPM ทำงานเป็นคอนเทนเนอร์ ไม่ใช่เป็นโปรแกรมปกติ ประการที่สอง ชื่อโดเมนที่คุณสามารถแก้ไขได้ เนื่องจากทุกบริการมีโดเมนย่อยของตัวเอง ประการที่สาม เราเตอร์หรือไฟร์วอลล์คลาวด์ของคุณจะต้องสามารถส่งต่อพอร์ต 80 และ 443 ไปยังเครื่องนี้ได้

📌 เกี่ยวกับ "2 นาที" ในชื่อ: คอนเทนเนอร์เริ่มต้นได้รวดเร็วอย่างแท้จริง - แต่เมื่อติดตั้ง Docker แล้วและการเตรียมการในคู่มือนี้เสร็จสิ้นแล้วเท่านั้น ในเครื่องใหม่ ให้เผื่อเวลาที่เหมาะสมสำหรับการตั้งค่า DNS และขั้นตอนใบรับรอง ผลรวมที่ซื่อสัตย์นั้นยาวกว่าสองนาที
⚠️ ในการเชื่อมต่อภายในบ้านที่อยู่เบื้องหลัง CGNAT การส่งต่อพอร์ตไม่สามารถทำงานได้เลย - ไม่มีการตั้งค่าภายใน NPM แก้ไขสิ่งนั้น ตัวเลือกที่ตรงไปตรงมาคือ IP สาธารณะ/คงที่จาก ISP ของคุณ, VPS ที่เช่าขนาดเล็ก หรือเครื่องมือทันเนลแทน อย่าข้ามการตรวจสอบนี้: ครึ่งหนึ่งของเรื่องราว "NPM ไม่ทำงาน" ทั้งหมดเป็นเรื่องราว "พอร์ตที่ไม่เคยเข้าถึงเซิร์ฟเวอร์" จริงๆ
2

ชี้ DNS โดเมนของคุณไปที่เซิร์ฟเวอร์ก่อน

NPM กำหนดเส้นทางการรับส่งข้อมูลตามชื่อ และ Lets Encrypt จะออกใบรับรองเฉพาะสำหรับชื่อที่ชี้ไปที่เครื่องของคุณเท่านั้น ดังนั้นชื่อจะต้องแก้ไขก่อนที่คุณจะสร้างสิ่งใดๆ บนนั้น ที่ผู้รับจดทะเบียนหรือโฮสต์ DNS ของคุณ ให้เพิ่ม ระเบียน A: ชื่อคือคำโดเมนย่อยเท่านั้น (เช่น แอป) และค่าคือที่อยู่ IP สาธารณะของเซิร์ฟเวอร์ของคุณ ทุกบริการจะได้รับบันทึกของตัวเอง และทั้งหมดสามารถชี้ไปที่ IP เดียวกันได้ - NPM จะแยกบริการในภายหลังตามชื่อ ตั้งค่า TTL สั้นๆ เช่น 300 วินาทีขณะทดสอบ ดังนั้นข้อผิดพลาดจะหายไปในไม่กี่นาทีแทนที่จะเป็นชั่วโมง

พิสูจน์ก่อนดำเนินการต่อ: ตรวจสอบว่าชื่อแปลงเป็น IP สาธารณะของคุณจากเครือข่ายภายนอก (เช่น จากโทรศัพท์ของคุณโดยปิด Wi-Fi) การขอใบรับรองเพื่อป้องกันการเสีย DNS ที่เสียหาย ให้พยายามเข้ารหัส และความล้มเหลวซ้ำๆ สามารถจำกัดอัตราของคุณได้เป็นเวลาหลายชั่วโมง ลำดับมีความสำคัญ: DNS มาก่อน โฮสต์พร็อกซีเป็นอันดับสอง ใบรับรองที่สาม

3

สร้างโฟลเดอร์และไฟล์เขียน

สร้างโฟลเดอร์สำหรับ 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

บรรทัด รีสตาร์ท: เว้นแต่หยุด จะนำ NPM กลับมาโดยอัตโนมัติหลังจากรีบูต

4

เริ่มตัวจัดการพร็อกซี Nginx

จากภายในโฟลเดอร์นั้น ให้รันคำสั่ง 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 Hosts → Add Proxy Host และกรอกแบบฟอร์มเป็นประโยคเดียว - "ชื่อนี้ไปที่บริการภายในนั้น":

ชื่อโดเมน: app.yourdomain.com - ชื่อสาธารณะทุกประการจากขั้นตอนที่ 2 ซึ่งจะต้องแก้ไขไปยังเซิร์ฟเวอร์ของคุณแล้ว
โครงการ: http สำหรับแอปที่บ้านและที่ทำงานส่วนใหญ่ Scheme อธิบายการเชื่อมต่อระหว่าง NPM และบริการภายใน ไม่ใช่สิ่งที่ผู้เยี่ยมชมใช้ - NPM จัดการการเข้ารหัสสาธารณะที่ประตู เลือก https ที่นี่เฉพาะเมื่อแอปภายในให้บริการ HTTPS เท่านั้น
ส่งต่อชื่อโฮสต์ / IP: ที่อยู่ภายในของบริการ เช่น 192.168.1.50.
พอร์ตส่งต่อ: พอร์ตที่บริการรับฟังจริง เช่น 8080 - ไม่ใช่ 80 หรือ 443 นั่นคือประตูของ NPM ไม่ใช่ของบริการ

เปิด บล็อกการหาประโยชน์ทั่วไป แล้วบันทึก ทดสอบทันทีโดยเปิดชื่อในเบราว์เซอร์ - ทางที่ดีควรมาจากโทรศัพท์ของคุณโดยปิด Wi-Fi เพื่อให้คุณทดสอบเส้นทางสาธารณะที่แท้จริง

✅ 502 Bad Gateway จาก NPM เป็นป้ายบอกทาง ไม่ใช่ความล้มเหลว หมายความว่าโลกภายนอกเข้าถึง NPM ได้อย่างสมบูรณ์แบบ และมีเพียงการกระโดดภายในครั้งสุดท้าย - ชื่อโฮสต์หรือพอร์ต - เท่านั้นที่ผิด แก้ไขฟิลด์นั้น ไม่ใช่การตั้งค่าทั้งหมด กับดักอีกอย่างหนึ่ง: หากบริการทำงานในคอนเทนเนอร์ Docker อื่น localhost ผิด (ภายในคอนเทนเนอร์ของ NPM localhost หมายถึง NPM เอง) - ใช้ LAN IP ของเซิร์ฟเวอร์กับพอร์ตที่เผยแพร่ หรือวางทั้งสองคอนเทนเนอร์บนเครือข่าย Docker เดียวกันและใช้ชื่อคอนเทนเนอร์
7

รับใบรับรอง Lets Encrypt HTTPS ฟรี

ให้ทำสิ่งนี้หลังจากที่โฮสต์ธรรมดาจากขั้นตอนที่ 6 ใช้งานได้แล้วเท่านั้น - HTTPS บนโฮสต์ที่ใช้งานไม่ได้จะให้ใบรับรองแก่โฮสต์ที่ใช้งานไม่ได้ และมีพื้นที่ให้ค้นหาข้อบกพร่องเป็นสองเท่า เปิดโฮสต์พร็อกซีเดียวกัน ไปที่แท็บ SSL ตั้งค่า ใบรับรอง SSL เป็น ขอใบรับรอง SSL ใหม่ เปิดใช้งาน บังคับ SSL และ การสนับสนุน HTTP/2 ยอมรับข้อกำหนดในการให้บริการให้เข้ารหัส และบันทึก โหลดไซต์ใหม่ - ตอนนี้เบราว์เซอร์ควรแสดงรูปกุญแจบน https

วิธีการทำงาน: ให้การเข้ารหัสพิสูจน์ว่าคุณควบคุมชื่อโดยขอให้เซิร์ฟเวอร์ของคุณแสดงโทเค็นแบบใช้ครั้งเดียวผ่านอินเทอร์เน็ตสาธารณะที่พอร์ต 80 (ความท้าทาย HTTP-01) นั่นคือสาเหตุที่ DNS ชี้ไปที่คุณและพอร์ตที่เข้าถึงได้ 80 ไม่สามารถต่อรองได้ - ล้มเหลวอย่างใดอย่างหนึ่งและคำขอล้มเหลว และข้อผิดพลาดอยู่ในการตั้งค่า ไม่เคยอยู่ใน Lets Encrypt บังคับ SSL เปลี่ยนเส้นทางผู้เยี่ยมชม http ทุกคนไปยัง https โดยอัตโนมัติ หากไม่มีประตูที่ไม่ได้เข้ารหัสจะยังคงเปิดอยู่ข้างๆ ประตูที่เข้ารหัส

📌 ใบรับรองมีอายุ 90 วัน และ NPM จะต่ออายุโดยอัตโนมัติ โดยทั่วไปประมาณหนึ่งเดือนก่อนหมดอายุ โดยใช้หลักฐานพอร์ต 80 เดียวกัน หากการต่ออายุล้มเหลว ให้ตรวจสอบสาเหตุที่น่าเบื่อก่อน: 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__

▶️ ดูวิดีโอเต็ม
บทช่วยสอนนี้อ้างอิงจากวิดีโอการติดตั้ง Nginx Proxy Manager ของ Technical Anshu • ติดขัดในขั้นตอนใดหรือไม่ ถามในความคิดเห็นของวิดีโอ — คุณจะได้รับความช่วยเหลือที่นั่น 🙏