VPS ใหม่ โดเมนชี้มาที่มัน และเหลืออีกเพียงคำสั่งเดียวก็จะได้เว็บเซิร์ฟเวอร์ที่ทำงานอยู่ สิ่งต่อไปที่คุณพิมพ์จะติดตั้ง Caddy หรือ Nginx และการตัดสินใจนั้นเพียงครั้งเดียวจะกำหนดว่าคุณจะใช้เวลากับ TLS มากแค่ไหนตลอดอายุการใช้งานของเครื่อง ดังนั้น: Caddy เทียบกับ Nginx บน VPS คุณจะติดตั้งตัวไหน?
สิ่งที่ตามมาคือการตั้งค่าสามแบบเดียวกันที่กำหนดค่าในทั้งสองเครื่องมือ เทียบเคียงกัน พร้อมตัวเลขหน่วยความจำที่มีการรายงาน จุดที่ต้องระวังเรื่อง wildcard-cert และบันทึกการย้ายระบบเชิงปฏิบัติหากคุณใช้ Nginx อยู่แล้ว
เวอร์ชันสั้น
- ข้อสรุป: Caddy เหมาะกับงาน VPS ใหม่ส่วนใหญ่ โดยเฉพาะสำหรับนักพัฒนาเดี่ยว ทีมเล็ก และ TLS แบบตั้งแล้วลืมได้ เลือก Nginx เมื่อคุณต้องการ ecosystem ของโมดูล, การปรับแต่งแบบชัดเจน, ความเชี่ยวชาญที่ทีมมีอยู่แล้ว หรือการใช้หน่วยความจำที่น้อยที่สุดเท่าที่จะเป็นไปได้
- HTTPS อัตโนมัติ: Caddy ขอและต่ออายุ cert ด้วยตัวเอง ไม่ต้องมี Certbot, ไม่ต้องมี cron, ไม่ต้องมี reload hook Nginx ต้องการ Certbot (หรือ ACME client อื่น) และระบบอัตโนมัติสำหรับการต่ออายุที่อยู่รอบๆ
- หน่วยความจำ: Nginx เบากว่า เพราะใช้ C แทน Go ช่องว่างนี้ไม่ค่อยมีผลชี้ขาดอะไรบนแพ็กเกจสมัยใหม่ ตัวเลขอยู่ในตารางด้านล่าง
- จุดที่ต้องระวัง: Caddy ไม่ใช่แบบ zero-config สำหรับ wildcard ชื่ออย่าง *.example.com ต้องการ DNS challenge ซึ่งหมายถึงปลั๊กอินและ API token
การเปรียบเทียบทั้งหมดบนหน้าจอเดียว:
| Caddy | Nginx | |
|---|---|---|
| ภาษา | Go | C |
| HTTPS อัตโนมัติ | มีในตัว (Let's Encrypt + ZeroSSL) | ไม่มี ต้องการ Certbot หรือ ACME client อื่น |
| ความยาวของ config | น้อยที่สุด (ไม่กี่บรรทัดต่อไซต์) | ชัดเจนและยาว |
| HTTP/3 | เปิดโดยค่าเริ่มต้นพร้อม HTTPS | มีให้ตั้งแต่ 1.25.0 ต้องเปิดใช้งานในการตั้งค่า Nginx การ build จาก source ต้องการ --with-http_v3_module. |
| หน่วยความจำขณะว่างที่มีการรายงาน | 15-25 MB | 2-8 MB |
| หน่วยความจำที่มีการรายงานที่ 1,000 การเชื่อมต่อ | 80-120 MB | 50-80 MB |
| Ecosystem ของโมดูล | เล็กกว่า ขยายได้ผ่าน xcaddy | ใหญ่และเติบโตเต็มที่ |
| สัญญาอนุญาต | Apache 2.0 | BSD-2-Clause |
ช่วงค่าหน่วยความจำมาจาก การทดสอบ VPS จากบุคคลภายนอกหนึ่งรายการ และควรถูกมองว่าเป็นแนวโน้มมากกว่าข้อกำหนดสากล การใช้งานจริงขึ้นอยู่กับเวอร์ชันของซอฟต์แวร์, โมดูลที่เปิดใช้งาน, การบันทึก log, ทราฟฟิก และวิธีการทดสอบ ข้อมูลเวอร์ชันและลิขสิทธิ์มาจาก repository อย่างเป็นทางการของโครงการ
HTTPS อัตโนมัติของ Caddy (และสิ่งที่มันมาแทนที่จริงๆ)
Caddy ขอและต่ออายุ TLS certificate ด้วยตัวเอง ชี้โดเมนสาธารณะไปที่เครื่อง รัน Caddy แล้วมันจะได้ cert จาก Let's Encrypt หรือ ZeroSSL จากนั้นก็ต่ออายุในเบื้องหลัง ไม่ต้องมี Certbot, ไม่ต้องมี cron job, ไม่ต้องมี reload hook หลังการต่ออายุ นั่นคือ HTTPS อัตโนมัติของ Caddy ในหนึ่งประโยค และเป็นเหตุผลทั้งหมดที่ผู้คนเปลี่ยนมาใช้
เบื้องหลัง Caddy ใช้ challenge แบบ HTTP-01 (port 80) หรือ TLS-ALPN-01 (port 443) เพื่อพิสูจน์ความเป็นเจ้าของโดเมน จากนั้นก็รักษา cert ให้ใหม่อยู่เสมอโดยไม่ต้องมีเครื่องมือที่สองเข้ามาเกี่ยวข้อง
สิ่งที่เทียบเท่าใน Nginx ใช้ ACME client แยกต่างหาก ด้วย certbot --nginx workflow ทั่วไป Certbot สามารถขอและติดตั้ง certificate ได้ จากนั้น นำปลั๊กอินตัวเดิมและตัวเลือกที่บันทึกไว้กลับมาใช้ในระหว่างการต่ออายุ. การติดตั้ง Certbot ส่วนใหญ่ยังมี scheduled task ที่ทำงาน certbot renew โดยอัตโนมัติ
หากคุณใช้ certbot certonly หรือ ACME client อื่นที่เพียงเขียนไฟล์ที่ต่ออายุแล้วลงดิสก์ ให้เพิ่ม deploy hook ที่จะ reload Nginx หลังจากต่ออายุสำเร็จ การตั้งค่านั้นใช้ได้ แต่ก็ยังทิ้งส่วนประกอบที่เคลื่อนไหวไว้มากกว่า Caddy: เว็บเซิร์ฟเวอร์, ACME client, ตัวจัดตารางการต่ออายุ และ deployment hook ใดๆ ยังคงเป็นส่วนประกอบที่แยกจากกัน
ข้อได้เปรียบด้านการปฏิบัติงานของ Caddy คือการออก certificate, การนำไปใช้, การต่ออายุ และการ redirect จาก HTTP ไป HTTPS ล้วนถูกผสานเข้าไปในตัวเซิร์ฟเวอร์เอง โดยค่าเริ่มต้น Caddy เริ่มพยายามต่ออายุเมื่อประมาณ เหลืออายุการใช้งานของ certificate ประมาณหนึ่งในสาม, คือ 30 วันสำหรับ certificate ที่มีอายุ 90 วัน เว้นแต่ certificate authority จะกำหนดช่วงเวลาการต่ออายุที่แตกต่างออกไป
เคล็ดลับ: ACME challenge เริ่มต้นของ Caddy ต้องการการเข้าถึงสาธารณะบน port 80 หรือ 443: HTTP-01 ใช้ port 80 ในขณะที่ TLS-ALPN-01 ใช้ port 443 หาก port 80 ถูกบล็อกแต่ 443 เปิดอยู่ TLS-ALPN อาจยังใช้งานได้ หากเครื่องไม่ได้เปิดสู่อินเทอร์เน็ต ให้ใช้ DNS-01 เช่นเดียวกับ wildcard cert ด้านล่าง
ไฟล์ config เทียบเคียงกัน
นี่คือการตั้งค่า VPS ทั่วไปสามแบบ ได้แก่ HTTPS reverse proxy, การให้บริการไฟล์ static และการยืนยันตัวตนพื้นฐาน เขียนไว้สำหรับทั้งสองเครื่องมือ ตัวอย่าง Caddy รวม HTTPS อัตโนมัติไว้ด้วย ตัวอย่าง Nginx สมมติว่ามีการจัดเตรียม certificate ไว้แล้ว และตัวอย่างไฟล์ static และ basic-auth แสดงเฉพาะบล็อก HTTPS server เท่านั้น นำบล็อก redirect ของ port-80 จากตัวอย่างแรกกลับมาใช้หากคุณต้องการพฤติกรรมการ redirect จาก HTTP ไป HTTPS ที่เทียบเท่ากัน
reverse proxy ไปยังแอปในเครื่องบน port 3000:
Caddyfile
example.com {
reverse_proxy localhost:3000
}
nginx.conf
server {
listen 443 ssl;
server_name example.com;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
location / {
proxy_pass http://localhost:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
server {
listen 80;
server_name example.com;
return 301 https://$host$request_uri;
}
บรรทัด TLS ในบล็อก Nginx สมมติว่า Certbot ทำงานไปแล้ว สำหรับ HTTP upstream อย่างข้างต้น Caddy จะส่งผ่านค่า Host header ที่เข้ามาและตั้งค่า X-Forwarded-For, X-Forwarded-Proto, และ X-Forwarded-Host โดยค่าเริ่มต้น. ด้วย Nginx โดยปกติคุณจะเพิ่ม proxy header อย่างชัดเจนเมื่อ upstream ต้องการ host, scheme และ chain ของที่อยู่ client ต้นฉบับ นั่นคือการแลกเปลี่ยนในรูปแบบย่อ: Caddy มาพร้อมค่าเริ่มต้นของ proxy ที่ใช้งานได้จริง ในขณะที่ Nginx ทำให้พฤติกรรมนั้นชัดเจนมากขึ้น
การให้บริการไฟล์ static:
Caddyfile
example.com {
root * /var/www
file_server
}
nginx.conf
server {
listen 443 ssl;
server_name example.com;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
root /var/www;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}
Basic auth ปกป้องทุกอย่างไว้หลังชื่อผู้ใช้และรหัสผ่าน:
Caddyfile
example.com {
basic_auth {
Bob $2a$14$Zkx19XLiW6VYouLHR5NmfOFU0z2GTNmpkT/5qqR7hx4IjWJPDhjvG
}
reverse_proxy localhost:3000
}
nginx.conf
server {
listen 443 ssl;
server_name example.com;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/.htpasswd;
location / {
proxy_pass http://localhost:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
ทั้งสองเครื่องมือทำการ hash รหัสผ่านแยกต่างหาก Caddy ใช้ caddy hash-password; Nginx ใช้ htpasswd เพื่อสร้างไฟล์ .htpasswd ไดเรกทีฟคือ basic_auth ใน Caddy ปัจจุบัน อนึ่ง มันเคยเป็น basicauth จนกระทั่ง v2.8.0 เปลี่ยนชื่อมัน ตามที่ระบุไว้ใน เอกสาร basic_auth ของ Caddy, และบทเรียนเก่าๆ ยังคงทำให้ผู้คนสะดุดกับมัน
เคล็ดลับ: hash ใน Caddyfile นั้นไม่ใช่รหัสผ่าน มันคือผลลัพธ์ bcrypt จาก
caddy hash-password. รันคำสั่ง แล้ววางสิ่งที่มันแสดงออกมา Caddy ปฏิเสธรหัสผ่านแบบ plaintext ใน config ซึ่งเป็นค่าเริ่มต้นที่ถูกต้องและเป็นเรื่องน่าประหลาดใจเล็กน้อยในครั้งแรก
ตัว config สื่อเหตุผลด้วยตัวเอง Caddy รวม TLS, proxy header ที่สมเหตุสมผล และ redirect ไว้ในไม่กี่บรรทัด Nginx ชัดเจนและยาว และมอบทุกปุ่มปรับให้คุณ หากคุณใช้เวลาหลายปีกับ Nginx ความยาวก็คือความเคยชิน และการควบคุมก็คือประเด็นสำคัญ หากคุณยังไม่เคย Caddyfile คือ config ที่คุณสามารถจดจำได้ในหัว ประเด็นเชิงปฏิบัติง่ายๆ ก็คือ: config ของ Caddy อ่านเข้าใจได้ง่ายกว่าเมื่อมองผ่านๆ ในขณะที่ Nginx ให้การควบคุมที่ชัดเจนกว่า
ประสิทธิภาพและหน่วยความจำ: อ่านผลการทดสอบมาตรฐานอย่างระมัดระวัง
การทดสอบที่เผยแพร่ชี้ไปในทิศทางทั่วไปเดียวกัน: Nginx มักใช้หน่วยความจำน้อยกว่าและมักนำหน้าในด้าน throughput ดิบ แต่ขนาดของข้อได้เปรียบนั้นขึ้นอยู่กับสภาพแวดล้อมเป็นอย่างมาก
In การทดสอบ VM แบบสี่คอร์จากบุคคลภายนอกหนึ่งรายการ, Nginx ทำได้ประมาณ 48,000 request ต่อวินาที เมื่อเทียบกับประมาณ 42,000 สำหรับ Caddy การทดสอบเดียวกันรายงาน latency HTTPS p99 ที่ 2.1 ms สำหรับ Nginx และ 2.4 ms สำหรับ Caddy ให้มองว่าสิ่งเหล่านั้นเป็นผลลัพธ์จากการตั้งค่าหนึ่งแบบ ไม่ใช่ส่วนต่างประสิทธิภาพสากล
ช่วงค่าหน่วยความจำในตารางเปรียบเทียบมาจาก การทดสอบ VPS แยกต่างหาก. อีก การทดสอบแบบจำลองที่ 50,000 การเชื่อมต่อพร้อมกัน รายงาน 145 MB สำหรับ Nginx และ 520 MB สำหรับ Caddy แต่การทดสอบนั้นใช้ฮาร์ดแวร์และเงื่อนไขภาระงานที่แตกต่างกันอย่างมาก ตัวเลขสัมบูรณ์ของมันไม่ควรถูกนำมาเปรียบเทียบโดยตรงกับตัวเลข VPS ด้านบน
ข้อสรุปที่เชื่อถือได้นั้นแคบกว่า: โดยทั่วไป Nginx ใช้หน่วยความจำน้อยกว่าและมีแนวโน้มนำหน้าภายใต้ภาระงานที่มี throughput สูงหรือ concurrency สูง สำหรับ reverse proxy บน VPS ขนาดเล็กถึงกลางทั่วไป ทั้งสองมักเร็วพอ ดังนั้นความเรียบง่ายในการปฏิบัติงานจึงมักเป็นปัจจัยตัดสินที่มีประโยชน์กว่า
ข้อสรุปของส่วนนี้: เลือกโดยพิจารณาจากการปฏิบัติงาน เว้นแต่เซิร์ฟเวอร์ของคุณจะมีหน่วยความจำจำกัดหรือการทดสอบภาระงานของคุณเองแสดงว่า throughput ของ proxy คือคอขวด
จุดที่ต้องระวังเรื่อง Wildcard Cert (Caddy ไม่ได้เป็น Zero-Config เสมอไป)
Caddy สามารถทำ wildcard certificate โดยอัตโนมัติได้ แต่ไม่ใช่ด้วย challenge เริ่มต้นแบบ HTTP-01 หรือ TLS-ALPN-01 certificate สำหรับ *.example.com ต้องการการตรวจสอบแบบ DNS-01, ซึ่ง Let's Encrypt กำหนดสำหรับ wildcard certificate นั่นหมายถึงปลั๊กอินผู้ให้บริการ DNS (สร้างเข้าไปใน Caddy binary ของคุณผ่าน xcaddy) บวกกับ API token สำหรับ DNS host ของคุณ ซึ่งกำหนดค่าไว้ในบล็อก tls มันไม่ใช่เรื่องแบบพิมพ์บรรทัดเดียวแล้วเดินจากไปที่ Caddy โฆษณา
สิ่งนี้ส่งผลกระทบต่อผู้ใช้ homelab ที่วางบริการจำนวนมากไว้ภายใต้โดเมนจริงที่พวกเขาควบคุม เช่น *.home.example.com, และคิดว่าการออก wildcard นั้นเป็นอัตโนมัติเหมือนกับ app.example.com. สำหรับชื่อภายในล้วนๆ เช่น *.homelab.internal, ให้มองว่านั่นเป็นขอบเขตของ PKI ภายใน/ท้องถิ่น ไม่ใช่ wildcard สาธารณะของ Let's Encrypt เพื่อให้ชัดเจน: Caddy ทำ wildcard ได้ดี เพียงแต่ไม่ทำด้วย challenge เริ่มต้น และการตั้งค่าก็ยกระดับขึ้นจากกรณีโดเมนเดียว Nginx ก็อยู่ในสถานการณ์เดียวกันตรงนี้ เนื่องจากข้อกำหนด DNS-01 มาจาก Let's Encrypt ไม่ใช่จากเซิร์ฟเวอร์
หากคุณต้องการ GUI: Nginx Proxy Manager (หมายเหตุสั้นๆ)
Nginx Proxy Manager เป็นคนละสิ่งกับสองเครื่องมือข้างต้น และคุ้มค่าที่จะกล่าวถึงสักหนึ่งย่อหน้าเพราะชื่อทำให้ผู้คนสับสน NPM เป็นตัวห่อ GUI ทับ Nginx: มันจัดการกฎ reverse-proxy และ cert ของ Let's Encrypt ผ่านเว็บอินเทอร์เฟซบน port 81 มันไม่ใช่ Nginx core และไม่ได้ถูกตั้งค่าแบบเดียวกับ Nginx core
การแลกเปลี่ยนก็คือแบบคลิกเทียบกับ config ตามปกติ NPM เป็นปุ่มง่ายๆ จนกว่าคุณจะก้าวออกจากเส้นทางที่ราบรื่น การตั้งค่าของมันถูกจัดการผ่านฐานข้อมูลแอปพลิเคชันแทนที่จะเป็นไฟล์ config ไฟล์เดียวที่แก้ไขด้วยมือ การตั้งค่า Docker เริ่มต้นใช้ SQLite ในขณะที่ MySQL/MariaDB และ PostgreSQL เป็นตัวเลือกฐานข้อมูลภายนอกที่รองรับ ความแตกต่างนั้นยังส่งผลต่อความสามารถในการเคลื่อนย้าย: การตั้งค่า Caddy มักสามารถย้ายได้โดยการคัดลอก Caddyfile ไฟล์เดียว, ในขณะที่การใช้งาน Nginx Proxy Manager ต้องการให้ ข้อมูลแอปพลิเคชันและฐานข้อมูล ถูกเก็บรักษาไว้ NPM เป็นตัวเลือกที่ดีหากคุณชอบการคลิกมากกว่าการแก้ไขจริงๆ และการตั้งค่าของคุณยังคงเรียบง่าย มันเป็นตัวเลือกที่ผิดสำหรับ workflow แบบ infrastructure-as-code
การย้ายจาก Nginx ไป Caddy (สิ่งที่แปลงได้และสิ่งที่แปลงไม่ได้)
หากคุณใช้ Nginx อยู่แล้วและกำลังชั่งใจที่จะย้าย ให้เริ่มด้วยการลดความคาดหวังเรื่องระบบอัตโนมัติ: มีตัว adapter สำหรับ config ของ NGINX ใน Caddy แต่มันไม่สมบูรณ์และไม่ควรถูกมองว่าเป็นเส้นทางการย้ายแบบครั้งเดียวจบที่เชื่อถือได้ การย้ายจาก Nginx ไป Caddy ส่วนใหญ่เป็นการเขียนใหม่ด้วยมือ และส่วนใหญ่ก็จะสั้นลง
สิ่งที่แปลงได้และง่ายขึ้น ตาม คู่มือการแปลงของชุมชน Caddy:
- สำหรับ HTTP upstream,
reverse_proxyส่งผ่านค่าHostheader ที่เข้ามาและ ตั้งค่า header มาตรฐาน X-Forwarded-* โดยค่าเริ่มต้น, ดังนั้นบรรทัดproxy_set_headerเหล่านั้นส่วนใหญ่จะหายไป - PHP ยุบจากบล็อก location ที่มี
try_filesบวกfastcgi_passบวกกับพารามิเตอร์กองโตให้เหลือเพียงphp_fastcgiไดเรกทีฟเดียว - การจัดการ WebSocket เป็นแบบอัตโนมัติใน Caddy v2 หากบทเรียนบอกให้คุณเพิ่มไดเรกทีฟ
websocketแยกต่างหาก นั่นคือสิ่งตกค้างจาก Caddy v1 ให้เพิกเฉยต่อมัน
สิ่งที่แปลงอัตโนมัติไม่ได้: อะไรก็ตามที่ผูกกับโมดูล Nginx เฉพาะที่ Caddy ไม่มี, ตรรกะ rewrite และ location ที่ซับซ้อนซึ่งคุณจะต้องคิดใหม่แทนที่จะย้ายมา และการตั้งค่า wildcard cert ที่จะพาคุณกลับไปที่การตั้งค่า DNS-challenge จากหัวข้อด้านบน เผื่อเวลาไว้สำหรับโมดูลและการ rewrite ส่วนที่เหลือมักเป็นการลดจำนวนบรรทัดโดยรวม
คุณควรติดตั้งตัวไหน? (การตัดสินใจ)
คุณได้เห็น config, ตัวเลข, จุดที่ต้องระวังเรื่อง wildcard และต้นทุนการย้ายแล้ว ดังนั้นนี่คือข้อสรุป ติดตั้ง Caddy หากคุณเป็นนักพัฒนาเดี่ยวหรือทีมเล็ก นี่เป็นการใช้งาน VPS ใหม่ คุณต้องการ TLS แบบตั้งแล้วลืมได้ คุณกำลังรัน Docker พร้อมการกำหนดเส้นทางแบบง่าย หรือคุณเพียงต้องการ config ที่จดจำได้ง่าย นั่นคือคนส่วนใหญ่ที่อ่านบทความนี้
ติดตั้ง Nginx หากคุณต้องการการควบคุมแบบละเอียดหรือโมดูลเฉพาะจาก ecosystem ที่เติบโตเต็มที่ของมัน คุณกำลังบีบประสิทธิภาพออกจากเซิร์ฟเวอร์ที่มีหน่วยความจำจำกัด คุณกำลังให้บริการไฟล์ static แบบ concurrency สูง หรือทีมของคุณมีความเชี่ยวชาญ Nginx ที่ลึกซึ้งและ config ที่ใช้งานได้กองโตอยู่แล้ว เหล่านั้นเป็นเหตุผลที่หนักแน่น และหากหนึ่งในนั้นเป็นของคุณ Nginx คือตัวเลือกที่ถูกต้อง นี่ไม่ใช่กรณีที่เครื่องมือที่เก่ากว่าเป็นเครื่องมือที่ผิด
ไม่ว่าคุณจะเลือกตัวไหน ขั้นตอนต่อไปคือการนำมันขึ้นเครื่อง ทั้งคู่ Caddy และ Nginx มีให้ใช้งานแบบติดตั้งคลิกเดียวใน marketplace ของเรา ดังนั้นคุณสามารถข้ามงานติดตั้งและไปที่ Caddyfile หรือ server block ได้เลย VPS ขนาด 1 GB เป็นจุดเริ่มต้นที่สมเหตุสมผลสำหรับการใช้งานไซต์เดียวที่มีทราฟฟิกต่ำ แต่ให้ปรับขนาดเซิร์ฟเวอร์ให้เหมาะกับแอปพลิเคชันและทราฟฟิกที่อยู่หลัง proxy มากกว่าตัว proxy เพียงอย่างเดียว หากคุณใช้ Caddy เป็นประตูหน้าสำหรับบริการแบบ self-hosted มันสามารถอยู่หน้า stack การมอนิเตอร์ Prometheus และ Grafana หรือ การใช้งาน Uptime Kuma โดยไม่ต้องการเครื่องมือ TLS แยกต่างหาก
ข้อสรุปของส่วนนี้: เลือก Caddy เว้นแต่คุณจะมีเหตุผลเฉพาะที่ชี้ไปที่ Nginx
คำถามที่พบบ่อย
Caddy มาแทนที่ Certbot หรือไม่?
ใช่ Caddy สามารถขอและต่ออายุ certificate สาธารณะได้ด้วยตัวเอง รวมถึง wildcard certificate ด้วย ดังนั้นจึงไม่จำเป็นต้องใช้ Certbot Wildcard ต้องการการตรวจสอบแบบ DNS-01, ซึ่งหมายถึงการกำหนดค่าโมดูลผู้ให้บริการ DNS ที่เข้ากันได้และข้อมูลรับรอง API
Caddy ใช้หน่วยความจำน้อยกว่า Nginx หรือไม่?
ไม่ โดยทั่วไป Nginx ใช้หน่วยความจำน้อยกว่า การทดสอบ VPS จากบุคคลภายนอกหนึ่งรายการ รายงาน 2-8 MB ขณะว่างสำหรับ Nginx และ 15-25 MB สำหรับ Caddy แต่ตัวเลขเหล่านั้นเฉพาะเจาะจงกับภาระงานมากกว่าที่จะเป็นข้อกำหนดหน่วยความจำที่ตายตัว ความแตกต่างนี้สำคัญที่สุดบนเซิร์ฟเวอร์ที่มีหน่วยความจำจำกัดซึ่งรันหลายบริการ
Caddy เร็วกว่า Nginx หรือไม่?
ขึ้นอยู่กับภาระงาน โดยปกติทั้งคู่เร็วพอสำหรับทราฟฟิก reverse-proxy บน VPS ทั่วไป ใน การทดสอบที่อ้างถึง, Nginx นำหน้าในด้าน throughput ดิบและประสิทธิภาพหน่วยความจำ แต่ขนาดของความแตกต่างเปลี่ยนแปลงอย่างมากตาม ฮาร์ดแวร์, รูปแบบทราฟฟิก และระดับ concurrency. ไม่มีเปอร์เซ็นต์เดียวที่ใช้ได้กับทุกการใช้งาน
Caddy รองรับ wildcard SSL certificate หรือไม่?
ใช่ wildcard อย่างเช่น *.example.com ต้องการการตรวจสอบแบบ DNS-01. เมื่อ Caddy มีโมดูลผู้ให้บริการ DNS ที่เข้ากันได้และข้อมูลรับรอง API แล้ว มันสามารถขอและต่ออายุ wildcard certificate ได้โดยอัตโนมัติ
Nginx Proxy Manager เหมือนกับ Nginx หรือไม่?
ไม่ Nginx Proxy Manager เป็นตัวห่อ GUI ทับ Nginx ที่เก็บการตั้งค่าไว้ในฐานข้อมูลแอปพลิเคชัน ใช้ web UI บน port 81 และจัดการ host แบบ reverse-proxy และ certificate ผ่านอินเทอร์เฟซนั้น Nginx core ถูกตั้งค่าด้วยไฟล์ข้อความและไม่มี GUI ของตัวเอง
เมื่อไหร่ที่ฉันควรใช้ Nginx แทน Caddy?
เลือก Nginx เมื่อคุณต้องการการควบคุมแบบละเอียด, โมดูลเฉพาะจาก ecosystem ที่เติบโตเต็มที่ของมัน, ทุก MB สุดท้ายบนเซิร์ฟเวอร์ที่มีหน่วยความจำจำกัด, การให้บริการไฟล์ static แบบ concurrency สูง หรือทีมของคุณมีความเชี่ยวชาญ Nginx ที่ลึกซึ้งอยู่แล้ว