28 คะแนน โดย GN⁺ 2025-02-17 | 12 ความคิดเห็น | แชร์ทาง WhatsApp

ฟีเจอร์หลักของ Caddy

  • ความปลอดภัยและการขยายตัว: Caddy จะขอและต่ออายุใบรับรอง TLS โดยอัตโนมัติสำหรับทุกไซต์เป็นค่าเริ่มต้น ทำให้เว็บไซต์ปลอดภัยและน่าเชื่อถือยิ่งขึ้น
  • On-Demand TLS: จัดการใบรับรอง TLS แบบไดนามิกสำหรับโดเมนที่ลูกค้าเป็นเจ้าของ ช่วยให้ขยายธุรกิจ SaaS ได้ง่าย
  • การจัดการ TLS ขนาดใหญ่: Caddy ถูกออกแบบมาให้จัดการเว็บไซต์หลายแสนแห่งและอินสแตนซ์หลายพันตัวได้อย่างเสถียร

ข้อดีของ Caddy

  • ซอฟต์แวร์ฟรี: Caddy เปิดให้ใช้งานฟรี และสามารถพัฒนาอย่างต่อเนื่องได้ผ่านการสนับสนุน
  • เซิร์ฟเวอร์ HTTPS ขั้นสูง: Caddy มาพร้อม TLS และ PKI เป็นพื้นฐาน และยังสามารถจัดการ PKI ภายในได้
  • Configuration API: สามารถส่งออกและจัดการเอกสาร JSON ผ่าน RESTful API ได้
  • การปฏิบัติตามข้อกำหนด: รองรับข้อกำหนด PCI, HIPAA และ NIST โดยพื้นฐาน

ฟีเจอร์ขั้นสูงของ Caddy

  • การประสานงานคลัสเตอร์: สามารถตั้งค่าอินสแตนซ์ Caddy หลายตัวให้ใช้สตอเรจเดียวกัน เพื่อประสานการจัดการใบรับรองโดยอัตโนมัติ
  • แบ็กเอนด์แบบไดนามิก: ค้นหาแบ็กเอนด์แบบไดนามิกเมื่อมีคำขอ จึงเหมาะกับสภาพแวดล้อมที่เปลี่ยนแปลงรวดเร็ว
  • ความพร้อมใช้งานสูง: มีฟีเจอร์อย่างการตรวจสอบสถานะขั้นสูง การเปลี่ยนคอนฟิก เซอร์กิตเบรกเกอร์ และการจำกัดโหลด

การตั้งค่าและการขยายความสามารถของ Caddy

  • คอนฟิกที่ยืดหยุ่น: ใช้ JSON เป็นรูปแบบคอนฟิกหลัก และรองรับ config adapter สำหรับหลายรูปแบบ
  • การขยายได้ไม่สิ้นสุด: Caddy ออกแบบด้วยสถาปัตยกรรมแบบโมดูลาร์ จึงคอมไพล์เฉพาะฟีเจอร์ที่ต้องใช้ได้
  • ประสิทธิภาพสูง: ให้ประสิทธิภาพระดับ native CPU และปลั๊กอินจะถูกคอมไพล์เข้าเป็น static binary

กรณีใช้งานของ Caddy

  • เซิร์ฟเวอร์แอปพลิเคชัน PHP: ให้บริการหน้า PHP ได้อย่างรวดเร็วผ่าน FrankenPHP โดยไม่ต้องติดตั้ง PHP แยกต่างหาก
  • เซิร์ฟเวอร์ไฟล์แบบสแตติก: Caddy มีความสามารถด้าน file server ที่ทรงพลัง และสามารถใช้งานร่วมกับฟีเจอร์มิดเดิลแวร์หลากหลายแบบได้
  • การจัดการใบรับรองอัตโนมัติ: Caddy จัดการใบรับรองให้อัตโนมัติ ช่วยให้เว็บไซต์ออนไลน์อยู่เสมอ

คำแนะนำจากผู้ใช้และผู้เชี่ยวชาญ

  • Caddy ใช้งานง่าย มีความปลอดภัยสูง และมีชุดความสามารถที่ทรงพลัง จึงได้รับการแนะนำจากผู้ใช้และผู้เชี่ยวชาญจำนวนมาก
  • ผู้ใช้หลากหลายกลุ่มพึงพอใจกับการตั้งค่าที่เรียบง่ายและความสามารถด้านอัตโนมัติของ Caddy

12 ความคิดเห็น

 
ssssut 2025-02-19

ผมใช้มาตั้งแต่ช่วงแรก ๆ ที่ยังเป็นโปรเจกต์ส่วนตัวของ mholt และตอนนั้นก็เคยส่ง PR ไปด้วยเหมือนกัน พอได้เห็นว่ามันเติบโตมาขนาดนี้ก็รู้สึกภูมิใจไปด้วยครับ ตอนนี้ในบรรดาเซิร์ฟเวอร์ที่ตั้งใหม่ ถ้าไม่ใช่สภาพแวดล้อม k8s ผมก็ใช้แต่ caddy ทั้งหมด มีคนพูดกันมานานแล้วว่า throughput ไม่ได้สูงมากนัก แต่ก็อิจฉาจริง ๆ นะที่ได้ดูแลบริการที่มีทราฟฟิกมากพอจน throughput ของ caddy กลายเป็นปัญหาได้

 
honglu 2025-02-19

ยอดเยี่ยมมากครับ

 
hands8142 2025-02-18

ทุกคนคิดอย่างไรกับ Traefik บ้างครับ?? ตอนนี้กำลังลังเลว่าจะเลือก Traefik หรือ Caddy อย่างใดอย่างหนึ่ง

 
porteleaf 2025-02-18

https://www.youtube.com/watch?v=N5PAU-vYrN8&t=663s
เห็นได้ชัดว่าเหมาะกับการใช้งานในโปรเจ็กต์ขนาดเล็กมาก ตอนจะใส่ https ถ้าเป็น nginx ต้องพ่วง certbot แต่ที่นี่รองรับมาให้เป็นพื้นฐานอยู่แล้ว
ข้อเสียคือประสิทธิภาพเป็น nginx > caddy ครับ

 
yangeok 2025-02-25

ถ้าคอมประสิทธิภาพกาก ก็คงต้องใช้ nginx สินะ,,

 
bbulbum 2025-02-18

ผมใช้งานมันมาตั้งแต่เมื่อหลายปีก่อน แต่เพราะการรองรับ HTTPS อัตโนมัติเป็นค่าตั้งต้น จึงรู้สึกแปลกอยู่บ้างในช่วงแรกที่ต้องตั้งค่าเพื่อหลีกเลี่ยงมันในกรณีที่ไม่ต้องการ
มันเรียบง่ายมากจนทำให้รู้สึกว่าเว็บเซิร์ฟเวอร์จะง่ายขนาดนี้ได้จริงหรือ เลยใช้งานมันเป็นประจำครับ

 
secret3056 2025-02-18

caddy แข็งแกร่งและใช้งานง่ายกว่าแบบทิ้งห่างจริง ๆ แต่ดูเหมือนว่า throughput จะไม่ได้ดีมากขนาดนั้นนะครับ
แล้วก็มีทั้งข้อดีและข้อเสียตรงที่ ถ้ามีปลั๊กอินที่ต้องการ ก็ต้อง build รวมเข้าไปด้วยครับ

 
tribela 2025-02-18

ฟีเจอร์แคชที่คิดว่าน่าจะมีมาให้โดยพื้นฐานกลับอยู่ในรูปแบบปลั๊กอิน และยังต้องบิลด์มันขึ้นมาเพื่อใช้งานอีกด้วยครับ.. นอกจากข้อเสียนั้นแล้วก็ใช้งานได้ดีอยู่ครับ

 
aer0700 2025-02-17

เซิร์ฟเวอร์ขั้นสุดยอด... น่าได้มาครอบครองจริง ๆ 555

 
GN⁺ 2025-02-17
ความคิดเห็นจาก Hacker News
  • Caddy มีประโยชน์มากเมื่อทดสอบ API แบบโลคัลด้วย HTTP2 ระหว่างการพัฒนา

    • เซิร์ฟเวอร์สำหรับพัฒนาส่วนใหญ่รองรับแค่ HTTP1 ทำให้บน localhost มีการเชื่อมต่อพร้อมกันได้สูงสุดเพียง 6 การเชื่อมต่อ
    • HTTP2 ต้องใช้ SSL ทำให้การทดสอบ/ตั้งค่าบนเครื่องโลคัลยุ่งยาก
    • หากใช้ Caddy reverse proxy ก็สามารถติดตั้ง root certificate ลงใน OS trust store และใช้งาน HTTP2 ได้ทันที
    • ElectricSQL แนะนำวิธีนี้ให้ผู้ใช้ และ HTTP2 จะไม่ทำให้การเชื่อมต่อพร้อมกัน 6 รายการถูกล็อก
    • ถ้าวาง Caddy ไว้หน้า Vite การรีโหลดจะเร็วขึ้นมาก
    • Vite ใช้ระบบ JS module ที่โหลดไฟล์แยกทีละไฟล์ในเบราว์เซอร์ และรองรับ HMR
    • เมื่อนำ Caddy มาวางหน้า Vite ผ่าน HTTP2 ก็สามารถแก้ปัญหาเหล่านี้ได้ทั้งหมด
  • หลังจากย้ายจาก nginx ไปใช้ caddy-docker-proxy แล้วก็ต่อมาย้ายไป Pangolin และพอใจมาก

    • Pangolin เป็นฟรอนต์เอนด์ของ traefik ที่มีระบบยืนยันตัวตนในตัวและความสามารถในการทำ traffic tunneling ผ่าน Wireguard
    • ต้องการ TCP forwarding สำหรับเซิร์ฟเวอร์ Minecraft และมันแก้เรื่องนี้ได้ง่ายมาก
    • แนะนำสำหรับคนที่ต้องการเวอร์ชันที่ดีกว่าของ Nginx Proxy Manager
    • เอกสารยังมีไม่มากนัก แต่ผู้ดูแลช่วยเหลือดีมากใน Discord
  • ไม่ค่อยมีอะไรจะพูดแย่ ๆ เกี่ยวกับ Caddy แต่ฟังดูเหมือนข้อดีเดียวเมื่อเทียบกับ Nginx คือการตั้งค่า certificate ที่ง่ายกว่า

    • เมื่อหลายปีก่อนเคยตั้งค่า Kubernetes cluster ให้สร้างและต่ออายุ certificate อัตโนมัติ
    • ทุกอย่างจัดการผ่าน Ingress และถ้ากำหนด Nginx load balancer ให้กับโดเมนใหม่ มันก็จะจัดการเองทั้งหมด
    • ไม่ได้ต้องใช้ HTTPS แบบโลคัลบ่อยนัก แต่ถ้าต้องใช้ก็มักต้องการการเข้าถึงจากภายนอกด้วย
    • ใช้เซิร์ฟเวอร์ที่รัน Nginx เพื่อทำ proxy ไปยัง localhost
    • วิธีนี้เหมาะกับฉันดี เลยจะใช้ต่อเพราะไม่มีเหตุผลให้เปลี่ยน
  • ชอบ Caddy มาก และใช้มาหลายปีแล้ว

    • มันเชื่อถือได้มาก และถ้าเรียนรู้พื้นฐานแล้ว การตั้งค่าก็ง่ายมาก
    • เอกสารอาจยากไปบ้าง แต่ก็ยังประหยัดเวลาและแรงได้มากกว่าการพยายามทำให้ letsencrypt ทำงานบน NGINX ได้อย่างน่าเชื่อถือ
  • ไลเซนส์ที่เป็นมิตร (Apache v2) ก็สำคัญเช่นกัน โดยเฉพาะเมื่อเกี่ยวข้องกับสถาปัตยกรรมแบบโมดูลาร์ของ Caddy

    • ทำให้อีโคซิสเต็มรอบ ๆ Caddy เรียบง่ายและปลอดภัยยิ่งขึ้น
    • ตัวอย่างเช่น การให้บริการอินเทอร์เน็ตไคลเอนต์ในขณะที่คงความเป็นส่วนตัวของเซิร์ฟเวอร์ไว้
    • VPN อย่าง Tailscale หรือ OpenZiti ก็เข้าข่ายนี้
  • Auto HTTPS จะออกและต่ออายุ TLS certificate ให้ทุกเว็บไซต์

    • redirect จาก HTTP ไป HTTPS ให้อัตโนมัติ
    • สงสัยว่าตอนชี้ IP ของโดเมนมาที่ Caddy มันจะสร้าง certificate ขึ้นมาทันทีเมื่อมีการเรียก HTTPS ครั้งแรกหรือไม่
    • เรื่องนี้สำคัญเพราะต้อง redirect apex domain ไปที่ www
    • อาจแก้ได้ด้วยบริการฟรีที่มีอยู่ แต่ถ้าใช้ Caddy ก็น่าจะง่ายกว่า
  • หลังจากอ่านเว็บไซต์ตั้งแต่ต้นจนจบแล้ว ก็ยังไม่ค่อยมั่นใจในความน่าเชื่อถือของโปรเจกต์

    • เนื้อหาดูชมตัวเองมากเกินไปจนให้ความรู้สึกไม่ดี
    • รู้สึกว่าผู้เขียนคงไม่ซื่อสัตย์นักเกี่ยวกับข้อเสียที่รู้กันอยู่แล้ว
    • สงสัยว่ามีใครรู้ไหมว่าในอดีตพวกเขาสื่อสารเรื่องนี้ออกมาอย่างไร
  • การใช้ Caddy ร่วมกับ Caddy-Docker-Proxy เป็นวิธีที่ยอดเยี่ยมในการตั้งค่าเซิร์ฟเวอร์ที่มีหลาย Docker project

    • กำลังรันอยู่บนเซิร์ฟเวอร์หลายเครื่องและทำงานได้ดี
  • ชอบ Caddy มาก

    • ย้ายมาจาก NGINX/OpenResty เมื่อ 2 ปีก่อน และการตั้งค่าง่ายขึ้นมาก
    • เคยใช้ lua-resty-auto-ssl แต่ตอนนี้ไม่ใช้แล้ว
    • รองรับผู้เข้าชม 70,000 คนต่อเดือนได้สบาย
  • Traefik ก็เป็นอีกทางเลือกที่ยอดเยี่ยม

    • ใช้ทั้ง v1 และ v2 มาหลายปี และตั้งค่าบริการด้วย Docker labels
 
xcutz 2025-02-18

โหหห