วาง Nginx ด้านหน้าและใช้ Compose
ทำพร็อกซีย้อนกลับและจัดการสแตก
วาง Nginx ด้านหน้าและใช้ Compose เป็นบทเรียน Flask Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Flask Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Flask Academy มีบทเรียนทั้งหมด 4 บทเรียน
เหตุผลที่ควรเพิ่ม Nginx
Gunicorn เรียกใช้แอปของคุณ แต่ Nginx จะอยู่ด้านหน้าในฐานะพร็อกซีย้อนกลับ โดยจัดการงานที่ยุ่งยากซึ่งหันออกสู่สาธารณะ เพื่อให้ Gunicorn มุ่งเน้นกับ Python ได้ 🛡️
พร็อกซีย้อนกลับทำอะไร
พร็อกซีย้อนกลับ จะรับคำขอจากไคลเอนต์ทุกรายการก่อน จากนั้นส่งต่อไปยัง Gunicorn และส่งต่อการตอบกลับกลับไปยังภายนอก
Nginx ให้บริการไฟล์สแตติก
ให้ Nginx ให้บริการ CSS, JS และรูปภาพของคุณโดยตรง เพราะ Nginx ส่งมอบ ไฟล์สแตติก ได้เร็วกว่าที่ Python จะทำได้มาก
TLS ก็อยู่ที่นี่เช่นกัน
Nginx เป็นตำแหน่งที่เหมาะสมตามธรรมชาติสำหรับยุติการเชื่อมต่อ HTTPS โดยจะจัดการใบรับรองและการเข้ารหัส ปล่อยให้ Gunicorn สื่อสารด้วย HTTP แบบไม่เข้ารหัสภายใน
คำสั่ง proxy_pass
ในการตั้งค่า Nginx proxy_pass จะบอกว่าต้องส่งการรับส่งข้อมูลไปที่ใด คุณจะชี้ไปยังคอนเทนเนอร์ Gunicorn ด้วยชื่อและพอร์ต
location / {
proxy_pass http://web:8000;
}เริ่มใช้ Docker Compose
Docker Compose เรียกใช้หลายคอนเทนเนอร์ร่วมกันจากไฟล์ YAML ไฟล์เดียว เหมาะอย่างยิ่งสำหรับคอนเทนเนอร์แอปและคอนเทนเนอร์ Nginx
กำหนดบริการเว็บ
ใน Compose อิมเมจ Flask ของคุณจะกลายเป็นบริการ เว็บ Compose จะสร้างบริการนี้จาก Dockerfile และตั้งชื่อให้คอนเทนเนอร์อื่นเข้าถึงได้
services:
web:
build: .เพิ่มบริการ Nginx
เพิ่มบริการ nginx ที่ใช้อิมเมจอย่างเป็นทางการและเมานต์ไฟล์การตั้งค่าของคุณ บริการนี้จะเผยแพร่พอร์ตออกสู่โลกภายนอก
nginx:
image: nginx:alpine
ports:
- "80:80"สื่อสารกันด้วยชื่อบริการ
Compose จะวางคอนเทนเนอร์ทั้งสองไว้ใน เครือข่าย เดียวกัน Nginx จะเข้าถึง Gunicorn ที่ http://web:8000 โดยใช้ชื่อบริการเป็นโฮสต์
ควบคุมลำดับการเริ่มต้น
ใช้ depends_on เพื่อให้ Nginx เริ่มทำงานหลัง web คำสั่งนี้ไม่ได้รอจนบริการพร้อมใช้งาน แต่ช่วยกำหนดลำดับการเริ่มต้นที่เหมาะสม
depends_on:
- webเริ่มต้นชุดบริการ
คำสั่งเดียวก็เรียกใช้ทุกอย่างได้ docker compose up จะสร้าง เชื่อมต่อเครือข่าย และเริ่มบริการทั้งสองเป็นชุดบริการเดียวที่กำลังทำงาน
docker compose up -d --buildตรวจสอบอย่างรวดเร็ว
Nginx ทำหน้าที่อะไรเมื่ออยู่ด้านหน้า Gunicorn
สรุป
Nginx อยู่ด้านหน้า Gunicorn และ Compose เชื่อมทั้งสองเข้าด้วยกันเป็นชุดบริการเดียวที่คุณเรียกใช้ด้วยคำสั่งเดียว ตอนนี้คุณสามารถนำ Flask ไปใช้งานจริงได้แล้ว 🎉
เรียนรู้ Python ด้วย AI tutor — ฟรี
เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป
- คอร์ส
- 30
- บทเรียน
- 120
คำถามที่พบบ่อย
บทเรียน “วาง Nginx ด้านหน้าและใช้ Compose” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “วาง Nginx ด้านหน้าและใช้ Compose” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Flask Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Flask Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “วาง Nginx ด้านหน้าและใช้ Compose”
ทำพร็อกซีย้อนกลับและจัดการสแตก คุณปฏิบัติ Flask Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Flask Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Flask Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน
บทเรียน “วาง Nginx ด้านหน้าและใช้ Compose” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Flask Academy นี้ได้ไหม
ได้ บทเรียน Flask Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- เหตุใดจึงไม่ควรใช้เซิร์ฟเวอร์พัฒนาในตัว
- เรียกใช้ Flask ภายใต้ Gunicorn
- เขียน Dockerfile สำหรับการใช้งานจริง
- วาง Nginx ด้านหน้าและใช้ Compose