การติดตั้ง Nginx Proxy Manager - คู่มือการตั้งค่า 2 นาที
ขณะนี้บริการของคุณอยู่ในที่อยู่ที่น่าเกลียดเช่น 192.168.1.50:8080 Nginx Proxy Manager เปลี่ยนชื่อให้เป็นชื่อที่เรียบง่าย เช่น app.yourdomain.com ด้วย HTTPS ฟรี - ติดตั้งด้วยไฟล์ Docker Compose หนึ่งไฟล์ และจัดการจากแผงเว็บธรรมดา แทนไฟล์กำหนดค่าที่เขียนด้วยมือ
📑บทต่างๆ
- สิ่งที่ Reverse Proxy ทำ - ประตูเดียวสำหรับบริการทั้งหมดของคุณ
- สิ่งที่คุณต้องการก่อนเริ่มต้น - นักเทียบท่า โดเมน และพอร์ตที่เข้าถึงได้
- ชี้ DNS โดเมนของคุณไปที่เซิร์ฟเวอร์ก่อนที่จะติดตั้งสิ่งใด
- สร้างโฟลเดอร์และไฟล์ docker-compose.yml
- เริ่ม Nginx Proxy Manager ด้วยคำสั่งเดียว
- เข้าสู่ระบบครั้งแรก - ขั้นตอนที่บัญชีผู้ดูแลระบบทุกคนทำผิด
- สร้างพร็อกซีโฮสต์แรกของคุณ ทีละฟิลด์
- รับใบรับรอง Lets Encrypt HTTPS ฟรี และเปิดใช้ Force SSL
📋 ภาพรวมและคำแนะนำทีละขั้นตอน
สิ่งที่คุณต้องการก่อนเริ่มต้น
ต้องมีสามสิ่งก่อนที่ Nginx Proxy Manager (NPM) จะสามารถทำงานได้ ขั้นแรก เซิร์ฟเวอร์ Linux หรือพีซีที่มี Docker และ Docker Compose ติดตั้งและทำงานอยู่แล้ว - NPM ทำงานเป็นคอนเทนเนอร์ ไม่ใช่เป็นโปรแกรมปกติ ประการที่สอง ชื่อโดเมนที่คุณสามารถแก้ไขได้ เนื่องจากทุกบริการมีโดเมนย่อยของตัวเอง ประการที่สาม เราเตอร์หรือไฟร์วอลล์คลาวด์ของคุณจะต้องสามารถส่งต่อพอร์ต 80 และ 443 ไปยังเครื่องนี้ได้
ชี้ DNS โดเมนของคุณไปที่เซิร์ฟเวอร์ก่อน
NPM กำหนดเส้นทางการรับส่งข้อมูลตามชื่อ และ Lets Encrypt จะออกใบรับรองเฉพาะสำหรับชื่อที่ชี้ไปที่เครื่องของคุณเท่านั้น ดังนั้นชื่อจะต้องแก้ไขก่อนที่คุณจะสร้างสิ่งใดๆ บนนั้น ที่ผู้รับจดทะเบียนหรือโฮสต์ DNS ของคุณ ให้เพิ่ม ระเบียน A: ชื่อคือคำโดเมนย่อยเท่านั้น (เช่น แอป) และค่าคือที่อยู่ IP สาธารณะของเซิร์ฟเวอร์ของคุณ ทุกบริการจะได้รับบันทึกของตัวเอง และทั้งหมดสามารถชี้ไปที่ IP เดียวกันได้ - NPM จะแยกบริการในภายหลังตามชื่อ ตั้งค่า TTL สั้นๆ เช่น 300 วินาทีขณะทดสอบ ดังนั้นข้อผิดพลาดจะหายไปในไม่กี่นาทีแทนที่จะเป็นชั่วโมง
พิสูจน์ก่อนดำเนินการต่อ: ตรวจสอบว่าชื่อแปลงเป็น IP สาธารณะของคุณจากเครือข่ายภายนอก (เช่น จากโทรศัพท์ของคุณโดยปิด Wi-Fi) การขอใบรับรองเพื่อป้องกันการเสีย DNS ที่เสียหาย ให้พยายามเข้ารหัส และความล้มเหลวซ้ำๆ สามารถจำกัดอัตราของคุณได้เป็นเวลาหลายชั่วโมง ลำดับมีความสำคัญ: DNS มาก่อน โฮสต์พร็อกซีเป็นอันดับสอง ใบรับรองที่สาม
สร้างโฟลเดอร์และไฟล์เขียน
สร้างโฟลเดอร์สำหรับ 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
บรรทัด รีสตาร์ท: เว้นแต่หยุด จะนำ NPM กลับมาโดยอัตโนมัติหลังจากรีบูต
เริ่มตัวจัดการพร็อกซี Nginx
จากภายในโฟลเดอร์นั้น ให้รันคำสั่ง start นักเทียบท่าดาวน์โหลดรูปภาพและเริ่มคอนเทนเนอร์ในพื้นหลัง
docker compose up -d
ตรวจสอบว่ากำลังทำงานอยู่:
docker ps
คุณควรเห็นคอนเทนเนอร์ที่แสดงพอร์ต 80, 443 และ 81 บนเซิร์ฟเวอร์ขนาดเล็ก การเริ่มต้นครั้งแรกจะใช้เวลาหนึ่งหรือสองนาทีในขณะที่สร้างฐานข้อมูล หากคอนเทนเนอร์รีสตาร์ทอย่างต่อเนื่อง บันทึกจะแสดงเหตุผลเป็นภาษาธรรมดา:
docker compose logs
เก้าครั้งในสิบครั้งของการรีสตาร์ทเป็นพอร์ตที่อย่างอื่นบนโฮสต์ใช้งานอยู่แล้ว - โดยปกติแล้วเว็บเซิร์ฟเวอร์เก่ายังคงทำงานอยู่
เข้าสู่ระบบครั้งแรก - รักษาความปลอดภัยบัญชีผู้ดูแลระบบทันที
เปิดแผงผู้ดูแลระบบในเบราว์เซอร์บนเครือข่ายของคุณเอง:
http://your-server-ip:81
ทำเช่นนี้ในนาทีแรก NPM ขอให้คุณแทนที่รายละเอียดผู้ดูแลระบบการเข้าสู่ระบบครั้งแรกที่รู้จักกันดีด้วยอีเมลของคุณเองและรหัสผ่านที่รัดกุม หรือ - สำหรับบิลด์ใหม่ที่ไม่มีบัญชีเริ่มต้น - บุคคลแรกที่เปิดหน้าผู้ดูแลระบบจะสร้างผู้ดูแลระบบ ไม่ว่าจะด้วยวิธีใดก็ตาม กฎจะเหมือนกัน: ตั้งค่าบัญชีผู้ดูแลระบบของคุณเองทันทีที่คอนเทนเนอร์เริ่มต้น ก่อนที่จะสร้างสิ่งอื่นใด และใช้กล่องจดหมายจริง - อีเมล NPM ที่จัดการเกี่ยวกับปัญหาใบรับรอง
สร้างโฮสต์พร็อกซีแรกของคุณ
ใน 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 เพื่อให้คุณทดสอบเส้นทางสาธารณะที่แท้จริง
localhost ผิด (ภายในคอนเทนเนอร์ของ NPM localhost หมายถึง NPM เอง) - ใช้ LAN IP ของเซิร์ฟเวอร์กับพอร์ตที่เผยแพร่ หรือวางทั้งสองคอนเทนเนอร์บนเครือข่าย Docker เดียวกันและใช้ชื่อคอนเทนเนอร์รับใบรับรอง Lets Encrypt HTTPS ฟรี
ให้ทำสิ่งนี้หลังจากที่โฮสต์ธรรมดาจากขั้นตอนที่ 6 ใช้งานได้แล้วเท่านั้น - HTTPS บนโฮสต์ที่ใช้งานไม่ได้จะให้ใบรับรองแก่โฮสต์ที่ใช้งานไม่ได้ และมีพื้นที่ให้ค้นหาข้อบกพร่องเป็นสองเท่า เปิดโฮสต์พร็อกซีเดียวกัน ไปที่แท็บ SSL ตั้งค่า ใบรับรอง SSL เป็น ขอใบรับรอง SSL ใหม่ เปิดใช้งาน บังคับ SSL และ การสนับสนุน HTTP/2 ยอมรับข้อกำหนดในการให้บริการให้เข้ารหัส และบันทึก โหลดไซต์ใหม่ - ตอนนี้เบราว์เซอร์ควรแสดงรูปกุญแจบน https
วิธีการทำงาน: ให้การเข้ารหัสพิสูจน์ว่าคุณควบคุมชื่อโดยขอให้เซิร์ฟเวอร์ของคุณแสดงโทเค็นแบบใช้ครั้งเดียวผ่านอินเทอร์เน็ตสาธารณะที่พอร์ต 80 (ความท้าทาย HTTP-01) นั่นคือสาเหตุที่ DNS ชี้ไปที่คุณและพอร์ตที่เข้าถึงได้ 80 ไม่สามารถต่อรองได้ - ล้มเหลวอย่างใดอย่างหนึ่งและคำขอล้มเหลว และข้อผิดพลาดอยู่ในการตั้งค่า ไม่เคยอยู่ใน Lets Encrypt บังคับ SSL เปลี่ยนเส้นทางผู้เยี่ยมชม http ทุกคนไปยัง https โดยอัตโนมัติ หากไม่มีประตูที่ไม่ได้เข้ารหัสจะยังคงเปิดอยู่ข้างๆ ประตูที่เข้ารหัส
🏷️ตัวแปรการค้นหาหัวข้อและคำหลัก
🎙️ บทถอดเสียงฉบับเต็ม — แตะเพื่อขยาย
__TOK_34__
__TOK_35__
__TOK_36__
❓คำถามที่พบบ่อย
บทช่วยสอนนี้ติดตามฟรี 100% หรือไม่
__TOK_37__
ผู้เริ่มต้นสามารถปฏิบัติตามคำแนะนำนี้ได้หรือไม่?
__TOK_38__
ฉันจะถามคำถามได้ที่ไหนหากฉันติดขัด?
__TOK_39__