Nginx คืออะไร? เข้าใจเว็บเซิร์ฟเวอร์และ Reverse Proxy ในบทความเดียว
ถ้าคุณเคยตั้งเซิร์ฟเวอร์เอง หรือเคยอ่านคู่มือติดตั้งเว็บแอปสักตัว คุณจะเจอชื่อ Nginx (อ่านว่า "เอ็นจินเอ็กซ์") เกือบทุกครั้ง บางคู่มือเรียกมันว่าเว็บเซิร์ฟเวอร์ บางคู่มือเรียกว่า reverse proxy จนสับสนว่าตกลงมันเป็นอะไรกันแน่
คำตอบสั้น ๆ คือมันเป็นได้ทั้งสองอย่าง และมักถูกใช้ทั้งสองบทบาทพร้อมกันบนเครื่องเดียว บทความนี้จะอธิบายตั้งแต่ว่า Nginx คืออะไร เว็บเซิร์ฟเวอร์ทำงานยังไงตั้งแต่คำขอจนถึงคำตอบ reverse proxy คืออะไรและต่างจาก forward proxy ตรงไหน เทียบกับ Apache แล้วควรเลือกอะไร และสุดท้ายคือเอาไปใช้จริงบน VPS ยังไง
Nginx คืออะไร
Nginx คือซอฟต์แวร์โอเพนซอร์สที่ทำหน้าที่รับคำขอ (request) ที่วิ่งเข้ามาทางอินเทอร์เน็ต แล้วส่งคำตอบ (response) กลับไปให้ผู้ใช้ หน้าที่นี้ฟังดูง่าย แต่มันคือหัวใจของทุกเว็บไซต์ เพราะเบราว์เซอร์ของผู้เข้าชมไม่เคยคุยกับ "เว็บไซต์" โดยตรง มันคุยกับโปรแกรมตัวหนึ่งบนเซิร์ฟเวอร์ที่คอยรับสายอยู่ และตัวที่คอยรับสายนั้นมักจะเป็น Nginx
Nginx ถูกเขียนขึ้นเพื่อแก้ปัญหาเว็บที่มีคนเข้าพร้อมกันจำนวนมาก จุดเด่นของมันคือสถาปัตยกรรมแบบ event-driven คือใช้กระบวนการทำงาน (worker) จำนวนไม่มาก แล้วให้แต่ละตัวสลับดูแลการเชื่อมต่อหลายพันสายพร้อมกันแบบไม่รอ แทนที่จะสร้างกระบวนการใหม่ให้ผู้ใช้ทุกคนที่เข้ามา ผลคือมันจัดการการเชื่อมต่อจำนวนมากได้โดยใช้แรมค่อนข้างคงที่
อีกเรื่องที่ควรรู้ตั้งแต่ต้นคือ Nginx ไม่ได้ "รัน" โปรแกรมเว็บของคุณเอง มันไม่ได้ประมวลผลโค้ด PHP, Node.js หรือ Python ให้โดยตรง สิ่งที่มันทำคือส่งไฟล์ที่มีอยู่แล้วออกไป หรือส่งต่อคำขอให้โปรแกรมอื่นที่รันอยู่บนเครื่องเดียวกันประมวลผลให้ แล้วรับผลกลับมาส่งต่อให้ผู้ใช้อีกที ตรงนี้แหละที่เป็นที่มาของบทบาท reverse proxy
เว็บเซิร์ฟเวอร์ทำงานยังไง — จากคำขอถึงคำตอบ
ก่อนจะเข้าใจว่า Nginx วางตัวอยู่ตรงไหน ต้องเห็นภาพก่อนว่าเวลาคนพิมพ์ชื่อเว็บในเบราว์เซอร์แล้วเกิดอะไรขึ้นบ้าง ทุกอย่างเกิดขึ้นในเวลาไม่ถึงวินาที แต่จริง ๆ มีหลายขั้นตอนเรียงกันอยู่ ลำดับต่อไปนี้คือเส้นทางของคำขอหนึ่งครั้งที่วิ่งไปถึงเครื่อง VPS ของคุณและวิ่งกลับมา
- 1ผู้ใช้พิมพ์ชื่อโดเมนในเบราว์เซอร์ ระบบ DNS จะแปลงชื่อโดเมนนั้นเป็นหมายเลข IP ของเซิร์ฟเวอร์ที่เว็บอยู่
- 2เบราว์เซอร์เปิดการเชื่อมต่อไปยัง IP นั้น ที่พอร์ต 443 สำหรับ HTTPS หรือพอร์ต 80 สำหรับ HTTP ธรรมดา
- 3ถ้าเป็น HTTPS ทั้งสองฝั่งจะทำขั้นตอนแลกกุญแจเข้ารหัสกันก่อน โดยเซิร์ฟเวอร์ยื่นใบรับรอง (SSL/TLS certificate) ให้เบราว์เซอร์ตรวจสอบ
- 4เบราว์เซอร์ส่งคำขอเข้าไป โดยระบุว่าต้องการหน้าไหน และแนบชื่อโดเมนที่ต้องการมาด้วย ตรงนี้สำคัญ เพราะเซิร์ฟเวอร์เครื่องเดียวอาจดูแลหลายโดเมนอยู่
- 5Nginx รับคำขอนั้น แล้วดูจากไฟล์ตั้งค่าว่าโดเมนนี้และเส้นทางนี้ต้องจัดการยังไง
- 6ถ้าสิ่งที่ขอคือไฟล์ที่มีอยู่แล้ว เช่น รูปภาพหรือไฟล์ CSS Nginx จะอ่านไฟล์นั้นจากดิสก์แล้วส่งกลับไปตรง ๆ
- 7ถ้าสิ่งที่ขอต้องประมวลผล เช่นหน้าที่ต้องดึงข้อมูลจากฐานข้อมูล Nginx จะส่งต่อคำขอให้แอปที่รันรออยู่ข้างหลัง แล้วรอผลลัพธ์
- 8Nginx ได้ผลลัพธ์กลับมา ใส่ส่วนหัวที่จำเป็น แล้วส่งกลับไปให้เบราว์เซอร์ เบราว์เซอร์ก็แสดงผลออกมาเป็นหน้าเว็บ
Reverse proxy คืออะไร ต่างจาก forward proxy ยังไง
Reverse proxy คือตัวกลางที่ตั้งอยู่ "หน้า" เซิร์ฟเวอร์ปลายทาง คอยรับคำขอจากอินเทอร์เน็ตแทนเซิร์ฟเวอร์เหล่านั้น แล้วส่งต่อเข้าไปข้างใน พอได้คำตอบก็ส่งกลับออกมาให้ผู้ใช้ ในมุมของผู้ใช้ เขาเห็นแค่ reverse proxy เท่านั้น ไม่มีทางรู้ว่าข้างหลังมีเซิร์ฟเวอร์กี่เครื่อง หรือแอปรันอยู่ที่พอร์ตอะไร
คำว่า "reverse" มาจากการเทียบกับ forward proxy ที่คนคุ้นเคยกว่า forward proxy คือพร็อกซีที่ตั้งอยู่หน้า "ผู้ใช้" ทำงานแทนผู้ใช้ในการออกไปหาเว็บข้างนอก เช่นพร็อกซีในออฟฟิศที่บังคับให้ทุกเครื่องออกอินเทอร์เน็ตผ่านมันเพื่อกรองเว็บ ส่วน reverse proxy ทำงานแทนฝั่งเซิร์ฟเวอร์ ทิศทางของ "ใครเป็นคนที่ถูกซ่อน" จึงกลับด้านกัน
จุดที่คนสับสนบ่อยคือคิดว่าทั้งสองอย่างคือของคนละชนิดกัน จริง ๆ มันคือซอฟต์แวร์ที่ทำหน้าที่ส่งต่อคำขอเหมือนกัน ต่างกันแค่ว่าติดตั้งไว้ฝั่งไหนและใครเป็นคนตั้ง — ผู้ใช้ตั้ง forward proxy ให้ตัวเอง ส่วนเจ้าของเว็บตั้ง reverse proxy ไว้หน้าระบบของตัวเอง โดยที่ผู้ใช้ไม่ต้องรู้เลยว่ามีมันอยู่
| หัวข้อ | Forward proxy | Reverse proxy |
|---|---|---|
| ตั้งอยู่ฝั่งไหน | อยู่หน้าเครื่องของผู้ใช้ | อยู่หน้าเซิร์ฟเวอร์ปลายทาง |
| ทำงานแทนใคร | แทนผู้ใช้ที่ส่งคำขอออกไปข้างนอก | แทนเซิร์ฟเวอร์ที่รับคำขอเข้ามา |
| ใครเป็นคนตั้ง | ผู้ใช้หรือผู้ดูแลเครือข่ายฝั่งผู้ใช้ | เจ้าของเว็บหรือผู้ดูแลเซิร์ฟเวอร์ |
| ซ่อนอะไร | ซ่อนตัวตนของผู้ใช้จากเว็บปลายทาง | ซ่อนโครงสร้างหลังบ้านจากผู้ใช้ |
| ใช้ทำอะไรบ่อย | กรองเว็บในองค์กร บันทึกการใช้งาน ควบคุมการออกเน็ต | กระจายโหลด ครอบ HTTPS แคชคำตอบ ป้องกันชั้นหน้า |
| ตัวอย่าง | พร็อกซีในออฟฟิศที่ทุกเครื่องต้องออกเน็ตผ่าน | Nginx ที่รับทราฟฟิกแล้วส่งต่อให้แอปที่รันอยู่หลังเครื่อง |
Nginx ใช้ทำอะไรได้บ้าง
Nginx ตัวเดียวรับได้หลายบทบาทพร้อมกัน และในเครื่องจริงมักถูกใช้หลายอย่างซ้อนกันอยู่แล้ว เช่นเสิร์ฟไฟล์ภาพเองไปด้วย ส่งต่อคำขอให้แอปไปด้วย และครอบ HTTPS ให้ทั้งหมดในเวลาเดียวกัน ตารางนี้สรุปหน้าที่ที่ใช้กันบ่อยที่สุด
| หน้าที่ | ทำอะไร | เหมาะกับตอนไหน |
|---|---|---|
| เสิร์ฟไฟล์ static | อ่านไฟล์ที่มีอยู่แล้ว เช่น HTML รูปภาพ CSS JavaScript แล้วส่งกลับตรง ๆ | เว็บที่มีไฟล์นิ่ง ๆ เยอะ หรือเว็บที่สร้างหน้าไว้ล่วงหน้าแล้ว |
| Reverse proxy | รับคำขอจากภายนอกแล้วส่งต่อให้แอปที่รันอยู่ข้างในเครื่อง แล้วส่งคำตอบกลับ | แอป Node.js, Python, PHP-FPM หรือแอปที่รันอยู่ในคอนเทนเนอร์ |
| Load balancer | กระจายคำขอไปยังเซิร์ฟเวอร์หลายเครื่องหรือหลายอินสแตนซ์ตามกติกาที่ตั้งไว้ | ระบบที่โตจนเครื่องเดียวรับไม่ไหว หรืออยากมีเครื่องสำรอง |
| ครอบ HTTPS (TLS termination) | ถือใบรับรองและถอดรหัส HTTPS ไว้ที่ชั้นนี้ชั้นเดียว แอปข้างหลังคุยกันแบบธรรมดาได้ | ทุกเว็บที่ต้องขึ้นแม่กุญแจ โดยเฉพาะเมื่อมีหลายแอปหลังเครื่องเดียว |
| จำกัดอัตราคำขอ (rate limit) | กำหนดว่า IP หนึ่ง ๆ ยิงคำขอเข้ามาได้กี่ครั้งต่อวินาที เกินกว่านั้นจะถูกชะลอหรือปฏิเสธ | หน้าเข้าสู่ระบบ หน้า API หรือหน้าที่โดนยิงซ้ำ ๆ จนเปลืองทรัพยากร |
| แคชคำตอบ | เก็บคำตอบที่เคยสร้างแล้วไว้ชั่วคราว คำขอเดิมครั้งถัดไปตอบจากแคชได้เลย | หน้าที่เนื้อหาไม่เปลี่ยนบ่อย แต่ต้องประมวลผลทุกครั้งถ้าไม่แคช |
Nginx กับ Apache ต่างกันยังไง
Apache HTTP Server คือเว็บเซิร์ฟเวอร์ที่เก่าแก่กว่าและยังใช้กันแพร่หลายมาก โดยเฉพาะบนโฮสติ้งแบบแชร์ ความต่างหลักอยู่ที่วิธีรับการเชื่อมต่อ Apache แบบดั้งเดิมใช้กระบวนการหรือเธรดต่อการเชื่อมต่อ (MPM prefork หรือ worker) ส่วน Nginx ใช้ worker จำนวนคงที่ที่สลับดูแลหลายการเชื่อมต่อพร้อมกัน
แต่ต้องพูดให้ครบว่า Apache รุ่นใหม่มี MPM event ที่ทำงานใกล้เคียงกับแนวทางของ Nginx มากขึ้นแล้ว ความต่างเรื่องการใช้ทรัพยากรจึงไม่ได้ห่างเหมือนสิบปีก่อน และผลจริงขึ้นกับรูปแบบทราฟฟิกและการตั้งค่าของแต่ละเครื่องมากกว่าชื่อซอฟต์แวร์
ความต่างที่กระทบงานประจำวันมากกว่าคือเรื่องไฟล์ตั้งค่า Apache รองรับ .htaccess ที่วางในโฟลเดอร์แล้วมีผลทันทีโดยไม่ต้องรีโหลด ซึ่งสะดวกมากบนโฮสติ้งแบบแชร์และกับซอฟต์แวร์ที่เขียนกฎ .htaccess ให้เอง ส่วน Nginx ไม่รองรับ .htaccess ทุกกฎต้องเขียนไว้ในไฟล์ตั้งค่าส่วนกลางแล้วสั่งรีโหลด
| หัวข้อ | Nginx | Apache |
|---|---|---|
| วิธีรับการเชื่อมต่อ | worker จำนวนคงที่ สลับดูแลหลายการเชื่อมต่อพร้อมกัน | กระบวนการ/เธรดต่อการเชื่อมต่อ (prefork, worker) หรือแบบผสมใน MPM event |
| ไฟล์ static | ออกแบบมาเพื่อการนี้โดยตรง เป็นงานที่ Nginx ทำได้ประหยัดทรัพยากร | ทำได้ดี แต่โดยทั่วไปกินทรัพยากรมากกว่าเมื่อการเชื่อมต่อพร้อมกันสูงมาก |
| ตั้งค่าต่อโฟลเดอร์ (.htaccess) | ไม่รองรับ ต้องเขียนกฎในไฟล์ตั้งค่ากลางแล้วรีโหลด | รองรับ แก้แล้วมีผลทันที เหมาะกับโฮสติ้งแบบแชร์ |
| รัน PHP | ส่งต่อให้ PHP-FPM ประมวลผล แล้วรับผลกลับมา | รันผ่านโมดูลในตัวได้เลย หรือจะใช้ PHP-FPM ก็ได้เช่นกัน |
| โมดูลเสริม | รองรับโมดูลแบบไดนามิกตั้งแต่รุ่น 1.9.11 แต่โมดูลนอกหลายตัวยังต้องคอมไพล์เอง | มีโมดูลให้เลือกเยอะกว่าและเปิด/ปิดแบบไดนามิกได้สะดวกกว่า |
| บทบาทที่ถนัด | ชั้นหน้าสุด: reverse proxy, load balancer, เสิร์ฟไฟล์ static, ครอบ HTTPS | ชั้นแอป: รันเว็บแอปที่ผูกกับโมดูลของ Apache หรือกฎ .htaccess เดิม |
ใช้ Nginx บน VPS ยังไง — เคสที่พบบ่อยที่สุด
เคสที่คนเช่าเซิร์ฟเวอร์เจอบ่อยที่สุดคือแบบนี้: คุณติดตั้งแอปตัวหนึ่งด้วย Docker แล้วมันรันอยู่ที่พอร์ตแปลก ๆ เช่น 3000 หรือ 5678 ตอนนี้คุณเข้าใช้งานได้แค่ผ่าน IP ตามด้วยเลขพอร์ต ซึ่งจำยาก ดูไม่เป็นมืออาชีพ และที่สำคัญคือยังไม่มีแม่กุญแจ HTTPS สิ่งที่ต้องการคือให้เข้าผ่านโดเมนของตัวเองและเป็น https ได้
Nginx คือชิ้นส่วนที่มาเติมช่องว่างตรงนี้พอดี วางมันไว้หน้าสุดของเครื่อง ให้มันเป็นตัวเดียวที่เปิดพอร์ต 80 กับ 443 ออกสู่อินเทอร์เน็ต แล้วให้แอปทุกตัวรันอยู่ข้างในโดยไม่ต้องเปิดพอร์ตออกสาธารณะเลย ภาพรวมของขั้นตอนเป็นแบบนี้
- 1ชี้ระเบียน DNS ของโดเมน (ระเบียน A) ไปที่ IP สาธารณะของ VPS แล้วรอให้ค่ากระจายเรียบร้อย
- 2ติดตั้ง Nginx บนเครื่อง แล้วตรวจว่าหน้าต้อนรับเริ่มต้นขึ้นเมื่อเปิดด้วย IP — เท่ากับพอร์ต 80 ทำงานปกติ
- 3สร้างไฟล์ตั้งค่าของโดเมนนั้นหนึ่งไฟล์ ระบุว่าคำขอที่มาถึงโดเมนนี้ให้ส่งต่อไปยังแอปที่รันอยู่ที่พอร์ตภายในของเครื่อง
- 4ทดสอบไวยากรณ์ของไฟล์ตั้งค่าด้วยคำสั่ง nginx -t ก่อนเสมอ ถ้าผ่านค่อยสั่งรีโหลด
- 5ขอใบรับรอง HTTPS ให้โดเมนนั้น โดยทั่วไปใช้ Let’s Encrypt ซึ่งฟรีและมีเครื่องมือตั้งค่าอัตโนมัติให้
- 6ตั้งให้คำขอที่เข้ามาทาง http ถูกเปลี่ยนเส้นทางไปเป็น https ทั้งหมด
- 7ปิดไม่ให้แอปข้างหลังผูกพอร์ตกับ IP สาธารณะโดยตรง ให้ฟังเฉพาะภายในเครื่อง เพื่อบังคับให้ทุกคนต้องผ่าน Nginx
- 8ถ้ามีแอปตัวที่สอง ก็เพิ่มไฟล์ตั้งค่าอีกไฟล์สำหรับโดเมนย่อยตัวใหม่ ชี้ไปพอร์ตภายในคนละพอร์ต โดยใช้ IP สาธารณะเดิมเครื่องเดิม
สเปก VPS ที่ควรใช้
ตัว Nginx เองกินทรัพยากรน้อยมาก โดยเฉพาะเมื่อทำหน้าที่เป็น reverse proxy อย่างเดียว สิ่งที่กินแรมจริง ๆ คือแอปที่รันอยู่ข้างหลังมันต่างหาก ดังนั้นเวลาเลือกแพ็กเกจ ให้คิดจากแอปที่จะรัน ไม่ใช่จากตัว Nginx ตารางด้านล่างคือแพ็กเกจ VPS ของ Plusweb ทุกตัวมี 1 Public IPv4 ในตัว และตัวเลขในวงเล็บคือราคาต่อเดือนเมื่อชำระรายปี
| แพ็กเกจ | CPU | RAM | SSD | ราคา/เดือน (รายปี) |
|---|---|---|---|---|
| VPS-00 | 1 vCore | 1 GB | 15 GB | 150฿ (120฿) |
| VPS-01 | 1 vCore | 3 GB | 30 GB | 250฿ (200฿) |
| VPS-02 | 2 vCores | 4 GB | 60 GB | 350฿ (280฿) |
| VPS-03 | 4 vCores | 8 GB | 100 GB | 600฿ (480฿) |
ข้อควรระวังที่ทำให้เว็บล่มบ่อยที่สุด
ปัญหาส่วนใหญ่ที่เจอกับ Nginx ไม่ได้เกิดจากตัวซอฟต์แวร์ แต่เกิดจากลักษณะการวางตัวของมัน — เพราะมันเป็นประตูเดียวของทั้งเครื่อง อะไรที่ผิดพลาดตรงนี้จึงกระทบทุกเว็บบนเครื่องพร้อมกัน ไม่ใช่แค่เว็บเดียว สามเรื่องนี้คือสาเหตุที่พบบ่อยที่สุด
- ลืมต่ออายุใบรับรอง — ใบรับรองจาก Let’s Encrypt มีอายุ 90 วัน ปกติมีตัวต่ออายุอัตโนมัติให้ แต่ถ้ามันพังเงียบ ๆ วันหมดอายุมาถึงเมื่อไหร่ เบราว์เซอร์จะขึ้นหน้าเตือนสีแดงเต็มจอทันที ควรตั้งการแจ้งเตือนวันหมดอายุไว้ด้วย ไม่ใช่ปล่อยให้ระบบอัตโนมัติทำงานคนเดียว
- แก้ config ผิดแล้วเว็บล่มทั้งเครื่อง — Nginx ตัวเดียวรับทุกโดเมนบนเครื่อง ถ้าไฟล์ตั้งค่าไฟล์ใดไฟล์หนึ่งผิดจนโหลดไม่ขึ้น มันจะไม่สตาร์ตเลย ผลคือทุกเว็บบนเครื่องดับพร้อมกัน ไม่ใช่แค่เว็บที่เพิ่งแก้
- ไม่ได้ทดสอบ config ก่อนรีโหลด — ป้องกันข้อที่แล้วได้ด้วยการรัน nginx -t ทุกครั้งก่อนสั่งรีโหลด คำสั่งนี้ตรวจไวยากรณ์ให้โดยไม่แตะบริการที่รันอยู่ ถ้าไม่ผ่านก็แก้ก่อน ยังไม่ต้องรีโหลด
- สั่ง restart ทั้งที่ควรใช้ reload — reload คือโหลดค่าใหม่โดยที่การเชื่อมต่อเดิมยังไม่ขาด ส่วน restart คือหยุดแล้วเปิดใหม่ ซึ่งทำให้เว็บดับชั่วขณะโดยไม่จำเป็น
- เปิดพอร์ตของแอปข้างหลังออกสาธารณะทิ้งไว้ — ถ้าแอปยังเข้าถึงได้ตรงทาง IP:พอร์ต คนก็ข้าม Nginx ไปได้ทั้งกฎ rate limit และ HTTPS ควรให้แอปฟังเฉพาะภายในเครื่องเท่านั้น
- ไม่ได้ตั้งค่าเว็บเริ่มต้นสำหรับโดเมนที่ไม่รู้จัก — ถ้าไม่กำหนดไว้ คนที่ชี้โดเมนแปลก ๆ มาที่ IP ของคุณจะได้เห็นเว็บแรกในลิสต์ ซึ่งไม่ควรเกิดขึ้น
สรุป
Nginx คือซอฟต์แวร์ที่ทำหน้าที่รับคำขอจากอินเทอร์เน็ตแล้วตอบกลับ โดยรับได้สองบทบาทหลัก คือเว็บเซิร์ฟเวอร์ที่ส่งไฟล์ออกไปตรง ๆ และ reverse proxy ที่ส่งต่อคำขอให้แอปข้างหลังทำงานให้ ส่วน reverse proxy เองก็คือตัวกลางที่อยู่หน้าเซิร์ฟเวอร์ ต่างจาก forward proxy ที่อยู่หน้าผู้ใช้
บนเครื่องเช่าจริง บทบาทที่ใช้บ่อยที่สุดคือให้มันเป็นประตูเดียวของทั้งเครื่อง รับพอร์ต 80 กับ 443 ครอบ HTTPS ให้ทุกโดเมน แล้วส่งต่อเข้าไปหาแอปที่รันอยู่ข้างใน ซึ่งเข้ากันดีมากกับการติดตั้งแบบคอนเทนเนอร์ ถ้ายังไม่คุ้นกับส่วนนั้น อ่าน Docker คืออะไร ประกอบ และถ้าจะเพิ่มชั้นแคชให้เว็บด้วย ลองดู CDN คืออะไร กับ Redis คืออะไร ซึ่งเป็นแคชคนละชั้นกัน
ข้อสำคัญสุดท้าย: การจะตั้ง Nginx เองได้ คุณต้องมีสิทธิ์ root บนเครื่อง ซึ่งโฮสติ้งแบบแชร์ทั่วไปไม่ให้ ถ้ายังไม่แน่ใจว่าควรใช้แบบไหน ลองอ่าน VPS คืออะไร และ VPS ต่างจาก Web Hosting ยังไง เทียบกันก่อน หรือถ้าแค่อยากได้เว็บที่มีคนตั้งค่าให้เรียบร้อย Web Hosting ก็ตอบโจทย์กว่า
อยากตั้ง Nginx เองบนเครื่องของคุณ?
VPS ของ Plusweb ให้สิทธิ์ root เต็มและ Public IPv4 ในตัว ตั้ง reverse proxy และครอบ HTTPS ได้เอง เริ่มต้น 120฿/เดือน (รายปี)
คำถามที่พบบ่อย
Nginx คืออะไรแบบสั้นที่สุด?
Nginx คือซอฟต์แวร์บนเซิร์ฟเวอร์ที่คอยรับคำขอจากเบราว์เซอร์แล้วส่งคำตอบกลับไป มันทำได้ทั้งการส่งไฟล์ที่มีอยู่แล้วออกไปตรง ๆ อย่างรูปภาพหรือ CSS และการส่งต่อคำขอให้โปรแกรมอื่นที่รันอยู่บนเครื่องเดียวกันประมวลผลให้ แล้วรับผลกลับมาส่งต่อ ตัวมันเองไม่ได้รันโค้ดเว็บแอปของคุณโดยตรง
Reverse proxy คืออะไร ต่างจาก forward proxy ยังไง?
Reverse proxy คือตัวกลางที่อยู่หน้าเซิร์ฟเวอร์ปลายทาง รับคำขอจากอินเทอร์เน็ตแทนเซิร์ฟเวอร์เหล่านั้นแล้วส่งต่อเข้าไปข้างใน ผู้ใช้จึงเห็นแค่ตัวกลางและไม่รู้ว่าข้างหลังมีอะไร ส่วน forward proxy อยู่หน้าเครื่องผู้ใช้ ทำงานแทนผู้ใช้ในการออกไปหาเว็บข้างนอก เช่นพร็อกซีในออฟฟิศ ต่างกันที่ว่าติดตั้งไว้ฝั่งไหนและใครเป็นคนตั้ง
Nginx กับ Apache เลือกอันไหนดี?
ขึ้นกับงาน ถ้าต้องการชั้นหน้าที่รับทราฟฟิก ครอบ HTTPS และส่งต่อให้แอปหลายตัว Nginx ตรงกับงานนั้นมากกว่า แต่ถ้าแอปเดิมของคุณพึ่งกฎ .htaccess หรือโมดูลของ Apache อยู่ การใช้ Apache ต่อจะเสียเวลาน้อยกว่ามาก และรูปแบบที่ใช้กันจริงบ่อยคือให้ Nginx อยู่หน้าแล้วส่งต่อให้ Apache ที่รันแอปอยู่ข้างหลัง
Nginx รัน PHP หรือ WordPress ได้ไหม?
ได้ แต่ Nginx ไม่ได้ประมวลผล PHP เอง มันจะส่งต่อคำขอให้ PHP-FPM ซึ่งเป็นตัวรัน PHP ทำงานให้แล้วรับผลกลับมาส่งต่อ ในทางปฏิบัติจึงต้องติดตั้งทั้ง Nginx และ PHP-FPM คู่กัน ข้อควรระวังคือ WordPress และปลั๊กอินหลายตัวเขียนกฎลง .htaccess ซึ่ง Nginx ไม่อ่าน ต้องแปลกฎเหล่านั้นมาไว้ในไฟล์ตั้งค่าของ Nginx เอง
ต้องใช้ VPS ไหมถึงจะตั้ง Nginx เองได้?
ใช่ในกรณีทั่วไป เพราะการติดตั้งและแก้ไฟล์ตั้งค่าของ Nginx ต้องมีสิทธิ์ root บนเครื่อง ซึ่งโฮสติ้งแบบแชร์ไม่เปิดให้ ถ้าจะตั้งเอง VPS-00 (1 vCore / 1 GB / 15 GB) ที่ 150฿ ต่อเดือนก็เริ่มได้สำหรับเว็บเดียว แต่ถ้ามีแอปหลายตัวหลัง Nginx พร้อมฐานข้อมูลบนเครื่องเดียวกัน ควรเป็น VPS-02 (2 vCores / 4 GB / 60 GB) ขึ้นไป
แก้ไฟล์ตั้งค่าแล้วเว็บดับทั้งเครื่อง เกิดจากอะไร?
เกิดจากการที่ Nginx ตัวเดียวรับทุกโดเมนบนเครื่อง ถ้าไฟล์ตั้งค่าไฟล์ใดไฟล์หนึ่งมีข้อผิดพลาด Nginx จะไม่สตาร์ตขึ้นเลย ทุกเว็บบนเครื่องจึงดับพร้อมกัน วิธีป้องกันคือรันคำสั่ง nginx -t เพื่อตรวจไวยากรณ์ก่อนสั่งรีโหลดทุกครั้ง และสำรองไฟล์เดิมไว้ก่อนแก้เสมอ
GUIDES
บทความที่เกี่ยวข้อง
อ่านต่อในหัวข้อใกล้เคียง
Docker คืออะไร? อธิบายแบบเห็นภาพ พร้อมวิธีใช้จริงบน VPS
Docker คือเครื่องมือที่ห่อแอปพร้อมทุกอย่างที่มันต้องใช้ไว้ในกล่องเดียว ทำให้รันที่ไหนก็ได้ผลเหมือนกัน อ่านให้เข้าใจศัพท์หลัก ความต่างจาก VM และเหตุผลที่คนเช่า VPS นิยมลง
อ่านต่อVPS คืออะไร? ใช้ทำอะไรได้บ้าง ฉบับเข้าใจง่าย
สรุปครบเรื่อง VPS — VPS server คืออะไร ทำงานยังไง Cloud VPS ต่างจาก VPS ทั่วไปตรงไหน ใช้ทำอะไรได้บ้าง เทียบกับ Shared Hosting และ Dedicated ใครควรใช้ และเริ่มต้นยังไงในปี 2026
อ่านต่อCDN คืออะไร? อธิบายแบบเห็นภาพ พร้อมบอกว่าเว็บไหนได้ผลจริง
CDN คือเครือข่ายที่เอาสำเนาไฟล์ของเว็บไปวางไว้หลายจุดทั่วโลก แล้วส่งจากจุดที่ใกล้ผู้ใช้ที่สุด อ่านให้เข้าใจว่ามันช่วยอะไร ไม่ช่วยอะไร และเว็บแบบไหนใช้แล้วแทบไม่ต่าง
อ่านต่อ