אנו מגדירים ריבוי אתרים עבור חברת אחזקות עם ארבעה מותגים — נתקלנו בכפילות קוד ובלבול בתוכן. הפתרון: התקנת Wagtail אחת עם מספר אתרים. הניסיון שלנו של למעלה מ-5 שנים (10+ פרויקטים) מבטיח ארכיטקטורה אמינה שבה כל דומיין חי חיים עצמאיים אך מנוהל באופן מרכזי.
Wagtail multi-site היא גישה הנדסית שחוסכת עד 60% בעלויות אירוח ומאיצה את הפריסה פי 5 בהשוואה להתקנות נפרדות. לקוחות מגיעים לעיתים קרובות עם אתרים קיימים על CMS שונים — אנו ממזגים אותם למערכת אקולוגית אחת באמצעות Wagtail multi-site, תוך העברת תוכן ושמירה על מדדי SEO. זה פותר בעיות טיפוסיות: שאילתות N+1 עם בסיסי נתונים נפרדים, חוסר סנכרון תבניות, מורכבות עדכונים — הכל נעלם עם ארכיטקטורה מרכזית.
תיעוד Wagtail אומר: ניתן לארח מספר אתרים מהתקנת Wagtail אחת. זהו הבסיס לעבודה שלנו. אנו מגדירים מיגרציות נתונים לשחזוריות בכל הסביבות — dev, stage, production.
אילו בעיות ריבוי אתרים פותר
- כפילות קוד. במקום חמישה עותקים של פרויקט אחד — קוד בסיס יחיד עם עדכונים במקום אחד.
- בלבול בתוכן. עורכים רואים רק את הדפים שלהם הודות להגבלות גישה. אף אחד לא שובר בטעות דף נחיתה של אחר.
- עלויות תחזוקה. שרת אחד במקום חמישה — פחות ניהול, אבטחה גבוהה יותר.
כיצד אנו מגדירים ריבוי אתרים: מקרה פרקטי
הלקוח — סוכנות עם שלושה אתרים לנישות שונות (מסחר אלקטרוני, בלוג, תיק עבודות). עשינו:
- בסיס נתונים PostgreSQL אחד עם משתמשים וקבוצות משותפים;
- שלושה דפי שורש
HomePageעם slugs שונים (ecommerce, blog, portfolio); - שלושה רשומות ב-
wagtailcore_site:shop.example.com,blog.example.com,portfolio.example.com; - מודל
ArticlePageמשותף לכל האתרים, אך עם ערכות נושא שונות באמצעותget_context; - הגבלות גישה: שלוש קבוצות עורכים, כל אחת רואה רק את הענף שלה.
תוצאות: זמן טעינת עמוד ממוצע מתחת לשנייה אחת, זמן הוספת אתר חדש — שעתיים. קרא עוד על התצורה בתיעוד Wagtail multi-site.
תהליך העבודה
- ניתוח. אנו חוקרים את המבנה של כל אתר, אוספים דרישות תוכן ותבניות.
- עיצוב. אנו קובעים מודלים משותפים ונפרדים של דפים, מתכננים את סכימת ספריית המדיה.
- יישום. אנו מגדירים
wagtailcore_site, כותבים מיגרציות נתונים, מוסיפים קבוצות גישה. - בדיקות. אנו בודקים כל דומיין: ניתוב, הצגת תוכן, הרשאות עורך.
- פריסה. אנו פורסים לייצור, מגדירים NGINX עם proxy ל-gunicorn יחיד.
השוואת גישות: מודלים משותפים לעומת נפרדים
| קריטריון | מודלים משותפים | מודלים נפרדים |
|---|---|---|
| פיתוח | מהיר יותר, פחות קוד | איטי יותר אך גמיש יותר |
| תחזוקה | לוגיקה אחידה, תיקונים חלים על כולם | שינויים עצמאיים אפשריים |
| ביצועים | פחות שאילתות, מטמון יחיד | ניתן לאופטימיזציה לכל אתר |
| מתי לבחור | אתרים עם מבנה דומה (חדשות, בלוגים) | תוכן שונה מהותית (מסחר אלקטרוני + פורום) |
לוחות זמנים משוערים
| שלב | משך | תוצאה |
|---|---|---|
| ניתוח | 0.5–1 יום | סכימת מבנה |
| עיצוב | 1–2 ימים | ארכיטקטורת מודלים |
| יישום | 2–3 ימים | ריבוי אתרים מוכן |
| בדיקות | יום אחד | אימות בכל הדומיינים |
| פריסה | 0.5 יום | סביבה חיה |
התקנה בסיסית ל-2–3 דומיינים עם מודלים משותפים אורכת 1–2 ימים. התמחור מחושב באופן אישי. עבור תצורות מותג נפרדות, ספריות מדיה מותאמות אישית והגבלות גישה — 3–4 ימים. העברת אתר קיים עם דומיין יחיד מתחילה מיומיים. העלות המדויקת תלויה במורכבות — צור קשר להערכת הפרויקט שלך.
מדוע ריבוי אתרים עדיף על התקנות נפרדות?
מתקין Wagtail של 5 דקות הוא אשליה. תחזוקת חמישה עותקים משמעותה עדכון קוד חמש פעמים, הגדרת SSL חמש פעמים, ניטור חמש פעמים. ריבוי אתרים מפחית עלויות אלו פי כמה. לפי המדידות שלנו, לקוחות חוסכים 40–60% בתקציב אירוח וניהול בעת מעבר להתקנה אחת.
מה כלול בתצורת מפתח
- תצורת
wagtailcore_site(דומיינים, פורטים, דפי שורש) - מיגרציית נתונים לשחזוריות
- הפרדת ספריית מדיה (אופציונלי: תגיות או מודל תמונות נפרד)
- הגבלות גישה (קבוצות, GroupPagePermission)
- תצורת NGINX (upstream אחד, מספר בלוקי שרת)
- תיעוד להוספת אתר חדש למבנה
- המלצות מטמון ו-CDN
כיצד לארגן הגבלות גישה?
אנו משתמשים ב-GroupPagePermission באופן פרוגרמטי דרך מיגרציית נתונים — זה מבטיח אותן הרשאות בכל הסביבות (dev/stage/prod). עורך של אתר A אינו רואה את אתר B. דוגמת קוד:
def setup_brand_editors(brand_root_page, group_name):
group, _ = Group.objects.get_or_create(name=group_name)
GroupPagePermission.objects.get_or_create(
group=group,
page=brand_root_page,
permission_type='change',
)
GroupPagePermission.objects.get_or_create(
group=group,
page=brand_root_page,
permission_type='publish',
)
return group רשימת בדיקה לפני השקה
- [ ] ודא שכל הדומיינים מצביעים לכתובת ה-IP שלך. - [ ] הגדר תעודות SSL לכל דומיין. - [ ] צור דפי שורש לכל אתר בניהול. - [ ] הרץ מיגרציית נתונים עבור אתרים וקבוצות. - [ ] בדוק שעורכים רואים רק את הדפים שלהם. - [ ] הגדר ניטור (זמינות, שגיאות 5xx).אנו מבטיחים פעולה יציבה בכל עומס. הערך את הפרויקט שלך — צור קשר לייעוץ. אל תדחה אופטימיזציה — בקש ביקורת על הארכיטקטורה הנוכחית שלך היום.







