Caddy מול Traefik מול nginx

Reverse proxy מול שירותי Docker Compose, בהשוואה לפי קריטריונים עם מקור ותאריך לכל תא. בלי דירוג.

מה ההשוואה הזו מוסיפה

מחולל ה-reverse proxy באתר כותב תצורה ל-Caddy, ל-Traefik או ל-nginx; בעמוד הזה מחליטים ביניהם. הוא מציב את השלושה זה לצד זה לפי שישה קריטריונים שנקראו מהתיעוד ומקובץ ה-LICENSE של כל פרויקט, ואומר מתי כל אחד מתאים. אין עמוד אחר באתר שמשווה ביניהם.

ההשוואה

כל תא מקשר לעמוד שממנו נקרא ומציין את היום שבו נקרא; תא ישן מחלון הרענון מסומן כלא עדכני.

Reverse proxy מול שירותי Docker Compose: הכלים לפי קריטריון, בסדר קבוע, בלי דירוג
ספקתצורהHTTPS אוטומטיגילוי שירותי DockerAPI ניהול וסטטוסHTTP/3רישיון
Caddyקובץ Caddyfile או JSON; שינויים נטענים דרך ה-endpoint ‏/load ב-admin API או caddy reload, בלי השבתה ועם חזרה לתצורה הקודמת בכישלון.מקור · מובנה ופעיל כברירת מחדל: מנפיק תעודות TLS דרך ACME, מחדש אותן ומפנה HTTP ל-HTTPS, בלי כלי נפרד.מקור · אין ספק Docker labels במודולים הסטנדרטיים; ה-upstreams מוגדרים בתצורה או נשלפים דינמית דרך רשומות DNS מסוג SRV או A/AAAA.מקור · admin API מסוג REST, בכתובת ברירת מחדל localhost:2019, לקריאה ולשינוי התצורה; לא מתואר dashboard ויזואלי בתיעוד.מקור · נתמך; אפשרות protocols בשרת היא h1 h2 h3 כברירת מחדל, כך ש-HTTP/3 פעיל כברירת מחדל.מקור · Apache License 2.0.מקור ·
Traefikתצורת התקנה בקובץ YAML/TOML, ארגומנטים או משתני סביבה; תצורת הניתוב מגיעה מ-providers ונטענת מחדש בלי הפעלה מחדש.מקור · מובנה דרך certificate resolvers של ACME (אתגר HTTP,‏ TLS או DNS) עם חידוש אוטומטי; יש להגדיר resolver.מקור · מובנה: ה-Docker provider קורא labels של קונטיינרים (למשל בקובץ Compose) ויוצר מהם נתיבים.מקור · API ו-dashboard מובנים שמציגים את הנתיבים הפעילים; כבויים כברירת מחדל (api=false), והתיעוד ממליץ לאבטח אותם בייצור.מקור · נתמך דרך האפשרות http3 ב-entryPoint; דורש entryPoint מסוג TCP, בדרך כלל זה שמשמש ל-TLS.מקור · רישיון MIT.מקור ·
nginxקובץ תצורה טקסטואלי nginx.conf; שינויים חלים אחרי nginx -s reload, שבודק תחביר ומפעיל workers חדשים בזמן שהישנים מסיימים.מקור · ACMEv2 דרך ngx_http_acme_module, שמופץ בנפרד (קוד ב-repo ‏nginx-acme, חבילה מוכנה nginx-module-acme); יש להוסיף אותו ל-nginx.מקור · אין Docker provider; שרתי upstream מוגדרים בתצורה. הפרמטר resolve מתרגם שמות DNS מחדש (בקוד הפתוח מגרסה 1.27.3).מקור · המודול stub_status מספק מידע סטטוס בסיסי (חיבורים, בקשות); לא נבנה כברירת מחדל.מקור · ngx_http_v3_module (מגרסה 1.25.0) מתועד כניסיוני; לא נבנה כברירת מחדל, וכלול בחבילות הבינאריות ל-Linux.מקור · רישיון בסגנון BSD בשני סעיפים (זכויות יוצרים Igor Sysoev ו-Nginx, Inc.).מקור ·

מתי לבחור בכל אחד

נגזר מהתאים שלמעלה. כל כלי מתאים למצב אחר; אף אחד אינו טוב יותר באופן כללי.

בחרו ב-Caddy
בחרו ב-Caddy כשרוצים שהתעודות יונפקו ויחודשו בלי כלי נפרד, HTTP/3 פעיל כברירת מחדל ושינויי תצורה נשלחים דרך API עם חזרה לאחור, וכשמתאים לכם להגדיר upstreams בתצורה ולא דרך Docker labels.
בחרו ב-Traefik
בחרו ב-Traefik כשרוצים שנתיבים ייווצרו מ-Docker labels בקובץ ה-Compose, ששינויי ניתוב ייטענו בלי הפעלה מחדש, תעודות ACME דרך resolver מוגדר ו-dashboard מובנה אופציונלי של הנתיבים הפעילים.
בחרו ב-nginx
בחרו ב-nginx כשרוצים קובץ תצורה טקסטואלי שנטען ב-reload הדרגתי ו-upstreams שמוגדרים במפורש, וכשמתאים לכם להוסיף את מודול ה-ACME שמופץ בנפרד כדי לקבל תעודות ולהתייחס ל-HTTP/3 כניסיוני.

איך לקרוא את העמודות

תצורה
פורמט התצורה ואיך שינוי נכנס לתוקף: reload, קריאה ל-API או provider שה-proxy עוקב אחריו.
HTTPS אוטומטי
האם ה-proxy עצמו מנפיק ומחדש תעודות דרך ACME, ומה צריך להגדיר או להוסיף לשם כך.
גילוי שירותי Docker
האם נתיבים יכולים להגיע מהקונטיינרים עצמם (labels) או שהם מוגדרים בתצורה.
API ניהול וסטטוס
מה ה-proxy מציע כדי לראות או לשנות את מצבו בזמן ריצה: API, ‏dashboard או עמוד סטטוס.
HTTP/3
האם HTTP/3 מעל QUIC נתמך, והאם הוא פעיל כברירת מחדל או מתועד כניסיוני.
רישיון
הרישיון של הפרויקט בקוד פתוח, כפי שכתוב בקובץ ה-LICENSE שלו.

שיטה

הכלים והקריטריונים נבחרו בהחלטת תוכן (#2929, 18 באוק׳ 2026): כלים שעושים את אותה עבודה, לכל אחד תיעוד ציבורי, בהשוואה לפי מה שהבחירה ביניהם תלויה בו.

כל תא נקרא ידנית מהתיעוד, מה-repository או מעמוד המחירים של הפרויקט עצמו, ושומר את העמוד ואת היום שבו נקרא. כשפרויקט לא מפרסם דבר על קריטריון, התא אומר מה הוא עושה במקום זאת ומצטט את העמוד שנבדק. תא נחשב לא עדכני 90 ימים אחרי שנקרא.

הכלים מופיעים בסדר קבוע, ואף עמודה אינה ציון. העמוד לא מריץ בנצ'מרק ולא מכריז על מנצח; ANAROQ אף פעם אינו אחד הצדדים, ואף אחד לא משלם על מקום.

איך אנחנו אוספים ומשווים את הנתונים

מגבלות

  • יכולות משתנות בין גרסאות: התאריך שבתא אומר מתי זה היה נכון, והעמוד של הפרויקט הוא הקובע.
  • כמה קריטריונים, לא כל הבדל: העמודות הן מה שהבחירה בדרך כלל תלויה בו, לא רשימת יכולות מלאה.
  • בלי בנצ'מרק: ביצועים, צריכת משאבים ואמינות לא נמדדו.

להמשיך באתר

מקורות

כל עמוד שממנו נקרא תא, עם היום שבו נקרא.

  • Caddy caddyserver.com
  • Caddy caddyserver.com
  • Caddy caddyserver.com
  • Caddy caddyserver.com
  • Caddy raw.githubusercontent.com
  • Traefik doc.traefik.io
  • Traefik doc.traefik.io
  • Traefik doc.traefik.io
  • Traefik doc.traefik.io
  • Traefik doc.traefik.io
  • Traefik raw.githubusercontent.com
  • nginx nginx.org
  • nginx nginx.org
  • nginx nginx.org
  • nginx nginx.org
  • nginx nginx.org
  • nginx nginx.org

הנתונים נכונים ל-18 באוק׳ 2026, תמונת מצב 2026.10.8. איך אנחנו אוספים ומשווים את הנתונים