Flask Academy · บทเรียน

วาง Nginx ด้านหน้าและใช้ Compose

ทำพร็อกซีย้อนกลับและจัดการสแตก

บทเรียน 4 จาก 413 ขั้นตอน

วาง 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. เหตุใดจึงไม่ควรใช้เซิร์ฟเวอร์พัฒนาในตัว
  2. เรียกใช้ Flask ภายใต้ Gunicorn
  3. เขียน Dockerfile สำหรับการใช้งานจริง
  4. วาง Nginx ด้านหน้าและใช้ Compose
← กลับไปที่ Flask Academy