nginx-proxy ตั้งค่าคอนเทนเนอร์ที่ใช้ nginx และ docker-gen docker-gen สร้างการกำหนดค่าพร็อกซีย้อนกลับสำหรับ nginx และโหลด nginx อีกครั้งเมื่อคอนเทนเนอร์เริ่มต้นและหยุดทำงาน
ดู Automated Nginx Reverse Proxy สำหรับ Docker ว่าทำไมคุณอาจต้องการใช้สิ่งนี้
หากต้องการเรียกใช้:
docker run --detach
--name nginx-proxy
--publish 80:80
--volume /var/run/docker.sock:/tmp/docker.sock:ro
nginxproxy/nginx-proxy:1.6
จากนั้นเริ่มต้นคอนเทนเนอร์ใด ๆ (นี่คือคอนเทนเนอร์ nginx) ที่คุณต้องการพรอกซีด้วย env var VIRTUAL_HOST=subdomain.yourdomain.com
docker run --detach
--name your-proxied-app
--env VIRTUAL_HOST=foo.bar.com
nginx
หาก DNS ของคุณได้รับการตั้งค่าให้แก้ไข foo.bar.com
ไปยังโฮสต์ที่ใช้งาน nginx-proxy คำขอไปยัง http://foo.bar.com
จะถูกส่งไปยังคอนเทนเนอร์โดยตั้งค่า VIRTUAL_HOST
env var เป็น foo.bar.com
(ในกรณีนี้คือคอนเทนเนอร์ แอปพร็อกซีของคุณ )
คอนเทนเนอร์ที่ได้รับมอบฉันทะจะต้อง:
EXPOSE
ใน Dockerfile
หรือโดยใช้แฟล็ก --expose
เพื่อ docker run
หรือ docker create
--net
เมื่อสร้างคอนเทนเนอร์ nginx-proxy คอนเทนเนอร์นั้นจะแนบกับเครือข่ายบริดจ์เริ่มต้นเท่านั้น ซึ่งหมายความว่าจะไม่สามารถเชื่อมต่อกับคอนเทนเนอร์บนเครือข่ายอื่นที่ไม่ใช่บริดจ์ได้ หมายเหตุ: ไม่สนับสนุนการระบุหมายเลขพอร์ตใน VIRTUAL_HOST
โปรดดูพอร์ตเสมือนหรือพอร์ต HTTP/HTTPS ภายนอกที่กำหนดเอง ขึ้นอยู่กับสิ่งที่คุณต้องการบรรลุ
อิมเมจ nginx-proxy มีให้เลือกสองรสชาติ
รูปภาพนี้อิงตามอิมเมจ nginx:mainline โดยตัวมันเองอิงตามอิมเมจเดเบียนสลิม
docker pull nginxproxy/nginx-proxy:1.6
-alpine
น์)รูปภาพนี้อิงจากรูปภาพ nginx:alpine
docker pull nginxproxy/nginx-proxy:1.6-alpine
latest
และ alpine
: ไม่แนะนำให้ใช้แท็ก latest
( nginxproxy/nginx-proxy
, nginxproxy/nginx-proxy:latest
) หรือ alpine
( nginxproxy/nginx-proxy:alpine
) สำหรับการตั้งค่าการผลิต
แท็กเหล่านั้นชี้ไปที่การคอมมิตล่าสุดในสาขา main
สิ่งเหล่านี้ไม่รับประกันความเสถียรใดๆ และการใช้สิ่งเหล่านี้อาจทำให้การตั้งค่า nginx-proxy ของคุณเสี่ยงต่อการพบกับการอัปเดตที่ไม่สามารถควบคุมได้สำหรับเวอร์ชันที่เข้ากันได้แบบย้อนหลังไม่ได้ (หรือเวอร์ชันที่มีการเปลี่ยนแปลงด่วน) คุณควรระบุเวอร์ชันที่คุณต้องการใช้อย่างชัดเจนเสมอเพื่อให้แน่ใจว่าการตั้งค่าของคุณจะไม่เสียหายเมื่อมีการอัปเดตรูปภาพ
โปรดตรวจสอบส่วนเอกสาร