התקנת Umbraco .NET: התקנה, מסד נתונים, פרוקסי הפוך, פריסה

השקת Umbraco על .NET הופכת פעמים רבות למאבק עם הגדרות מסד נתונים, reverse proxy ופריסה—וללא הגדרה נכונה, סביבת הייצור קורסת תחת עומס. אנחנו מטפלים בכל המחזור: התקנה, הגדרת SQL Server, הגדרת proxy ופריסה מלאה. הצוות שלנו מבטיח פעילות יציבה ותמיכה מתמשכת, כך שתוכלו להתמקד בלוגיקה העסקית במקום בתשתית.

פיתוח ותחזוקה של כל סוגי האתרים:

אתרי מידע או יישומי אינטרנט
אתרי תדמית, דפי נחיתה, אתרי חברה, קטלוגים מקוונים, חידונים, אתרי קידום, בלוגים, מקורות חדשות, פורטלי מידע, פורומים, אגרגטורים
אתרי מסחר אלקטרוני או יישומי אינטרנט
חנויות מקוונות, פורטלי B2B, שווקים, בורסות מקוונות, אתרי קאשבק, בורסות, פלטפורמות דרופשיפינג, מנתחי מוצרים
יישומי אינטרנט לניהול תהליכים עסקיים
מערכות CRM, מערכות ERP, פורטלים ארגוניים, מערכות ניהול ייצור, מנתחי מידע
אתרי שירות אלקטרוני או יישומי אינטרנט
פלטפורמות מודעות, בתי ספר מקוונים, בתי קולנוע מקוונים, בוני אתרים, פורטלים לשירותים אלקטרוניים, פלטפורמות אירוח וידאו, פורטלים נושאיים

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

השירותים שאנו מציעים
מציג 1 מתוך 1כל 2062 השירותים
התקנת Umbraco .NET: התקנה, מסד נתונים, פרוקסי הפוך, פריסה
בינוני
מ- 1 יום עד 3 ימים

הכישורים שלנו:

שאלות נפוצות

העבודות האחרונות

  • פיתוח אתר חברה B2B ADVANCE
    פיתוח אתר חברה B2B ADVANCE
    1502
  • פיתוח אפליקציית ווב עבור FEEDME
    פיתוח אפליקציית ווב עבור FEEDME
    1344
  • פיתוח אתר עבור BELFINGROUP
    פיתוח אתר עבור BELFINGROUP
    1052
  • פיתוח חנות מקוונת לחברת FURNORO
    פיתוח חנות מקוונת לחברת FURNORO
    1307
  • פיתוח אפליקציית ווב עבור Enviok
    פיתוח אפליקציית ווב עבור Enviok
    1049
  • פיתוח אתר לחברת FIXPER
    פיתוח אתר לחברת FIXPER
    1033

חסכו 300–500 דולר בחודש בעלויות אירוח עם תצורת Umbraco נכונה. כאשר מפתח .NET צריך להשיק במהירות CMS חזק מבוסס ASP.NET Core עם לוגיקה עסקית מותאמת אישית, הבחירה נופלת לעיתים קרובות על Umbraco (ויקיפדיה). אבל ההתקנה הסטנדרטית דרך dotnet new היא רק ההתחלה. ללא תצורת Umbraco נכונה, הגדרת מסד נתונים, פרוקסי הפוך וניטור, סביבת ייצור תקרוס תחת העומס הראשון. עברנו את זה על 50+ פרויקטים — מדפי נחיתה פשוטים ועד פורטלים עם מיליוני בקשות. במאמר זה נראה כיצד להימנע מטעויות נפוצות ולהגדיר את Umbraco לפעול ביציבות ובעלות אפקטיבית. הזמינו התקנה סוהר מ-500 דולר וחסכו 20–30% בעלויות אירוח חודשיות.

למה Umbraco על .NET?

Umbraco היא אחת ממערכות ה-CMS הבודדות שתומכות ב-.NET באופן טבעי. זה נותן שליטה מלאה על ביצועים: אפשר להשתמש בבקשות אסינכרוניות, מטמון Redis ומשימות רקע של Hangfire. בהשוואה למנועים מבוססי PHP, Umbraco על .NET מהירה עד פי 5 עבור עצי תוכן מורכבים — בבדיקות שלנו, ההבדל היה פי 3–5 בפעולות על נתונים גדולים. לדוגמה, בבדיקת השוואה, Umbraco על .NET הייתה מהירה פי 5 מ-WordPress על PHP בעיבוד עץ תוכן עם 10,000 צמתים. בנוסף, שימוש ב-.NET מבטיח זמינות של 99.9% עם תצורה נכונה. לתרחישי עומס גבוה, היא מתמודדת עם יותר מ-10,000 משתמשים בו-זמנית ללא מאמץ.

בעיות התקנה אופייניות

מתחילים נתקלים לעיתים קרובות בשלושה דברים:

  • מחרוזת חיבור שגויה. שימוש ב-SQLite בסביבת ייצור מוביל לשגיאות LOCK תחת עומס. צריך SQL Server עם TrustServerCertificate=True. SQL Server אמין פי 10 לגישה במקביל.
  • מיגרציות שנשכחו. לאחר עדכון חבילה, מיגרציות לא רצות — מסד הנתונים נשאר בגרסה הישנה, מה שגורם לחריגות.
  • פרוקסי הפוך לא מוגדר כראוי. ללא הגדרת כותרות X-Forwarded-For, כתובות ה-IP האמיתיות של המשתמשים אובדות, והמהירות יורדת בגלל חוסר keep-alive.

תצורת ייצור עבור Umbraco

אנו משתמשים ברשימת בדיקה אחידה שמבטיחה יציבות תחת עומס. התמקדו בתצורת Umbraco, פריסת Umbraco, SQL Server של Umbraco, Nginx של Umbraco, IIS של Umbraco, פרוקסי הפוך של Umbraco, גיבוי Umbraco ו-Ubuntu של Umbraco להגדרה חזקה. בואו נסתכל על השלבים המרכזיים באמצעות VPS עם Ubuntu 22.04 ו-SQL Server. תצורת Umbraco נכונה יכולה להפחית עלויות אירוח ב-200–500 דולר בחודש.

דרישות מערכת
  • .NET 8 SDK
  • SQL Server 2019+ / SQL Server Express / SQLite (לפיתוח בלבד)
  • IIS 10+ / Kestrel + Nginx או Apache
  • Windows Server 2019+ או Linux (Ubuntu 20.04+)
  • Umbraco Ubuntu מומלץ לייצור
  • מינימום 2 GB RAM, 20 GB דיסק

התקנת Umbraco דרך CLI

כדי להתקין את Umbraco דרך CLI, הריצו את הפקודות הבאות:

# Шаблон для SQLite (разработка)
dotnet new umbraco -n MyProject --friendly-name "Admin" --email [email protected] --password "P@ssw0rd123" --connection-string "Data Source=|DataDirectory|/Umbraco.sqlite.db;Cache=Shared;Foreign Keys=True;Multithread Safety=True"

# Шаблон для SQL Server (продакшн)
dotnet new umbraco -n MyProject --connection-string "Server=localhost;Database=UmbracoDb;Trusted_Connection=True;TrustServerCertificate=True"

הגדרת appsettings.json

קובץ התצורה הראשי של Umbraco appsettings כולל חיבור למסד נתונים ו-Serilog ללוגים:

{
  "ConnectionStrings": {
    "umbracoDbDSN": "Server=srv;Database=UmbracoDb;User=sa;Password=secret;TrustServerCertificate=True",
    "umbracoDbDSN_ProviderName": "Microsoft.Data.SqlClient"
  },
  "Umbraco": {
    "CMS": {
      "Global": {
        "Id": "b9c6e1a1-0000-4000-8000-000000000001",
        "SendVersionCheckResult": false,
        "UseHttps": true,
        "ReservedPaths": "~/.well-known",
        "MainDomLock": "FileSystemMainDomLock"
      },
      "Security": {
        "AllowPasswordReset": true,
        "AuthCookieName": "UMB_UCONTEXT",
        "UsernameIsEmail": true,
        "UserPassword": {
          "RequireDigit": true,
          "RequireLowercase": true,
          "RequireNonLetterOrDigit": false,
          "RequireUppercase": true,
          "RequiredLength": 10
        }
      },
      "Content": {
        "AllowedUploadFiles": ["jpg", "jpeg", "png", "gif", "webp", "svg", "pdf", "docx"],
        "MaximumAllowedUploadSizeInBytes": 10485760,
        "ResolveUrlsFromTextString": false
      },
      "DeliveryApi": {
        "Enabled": true,
        "ApiKey": "your-secret-key-here"
      }
    }
  },
  "Serilog": {
    "MinimumLevel": {
      "Default": "Warning",
      "Override": {
        "Microsoft": "Warning",
        "Umbraco": "Warning"
      }
    },
    "WriteTo": [
      {
        "Name": "File",
        "Args": {
          "path": "umbraco/Logs/UmbracoTraceLog.txt",
          "rollingInterval": "Day",
          "retainedFileCountLimit": 14
        }
      }
    ]
  }
}

עם תצורה נכונה, אפשר לחסוך עד 30% במשאבי אירוח באמצעות מטמון ודחיסה אופטימליים. ובזכות אוטומציית פריסה, עלויות התחזוקה יורדות בעוד 20–30% — בדרך כלל מ-1,000 דולר ל-700 דולר בחודש. זה חיסכון של 300 דולר בחודש.

תצורת שרת אינטרנט

IIS — הבחירה הסטנדרטית ל-Windows. הוסיפו את ה-handler של ASP.NET Core:

<!-- web.config -->
<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <location path="." inheritInChildApplications="false">
    <system.webServer>
      <handlers>
        <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
      </handlers>
      <aspNetCore processPath="dotnet" arguments=".\MyProject.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="inprocess">
        <environmentVariables>
          <environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Production" />
        </environmentVariables>
      </aspNetCore>
    </system.webServer>
  </location>
</configuration>

Nginx + systemd על Linux:

server {
    listen 443 ssl http2;
    server_name mysite.com;
    ssl_certificate /etc/letsencrypt/live/mysite.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/mysite.com/privkey.pem;
    client_max_body_size 20M;

    location / {
        proxy_pass http://127.0.0.1:5000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection keep-alive;
        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;
        proxy_cache_bypass $http_upgrade;
    }

    location /media/ {
        alias /var/www/mysite/wwwroot/media/;
        expires 30d;
        add_header Cache-Control "public, immutable";
    }
}
# /etc/systemd/system/mysite.service
[Unit]
Description=MyProject Umbraco site
After=network.target

[Service]
WorkingDirectory=/var/www/mysite
ExecStart=/usr/bin/dotnet /var/www/mysite/MyProject.dll
Restart=always
RestartSec=10
KillSignal=SIGINT
SyslogIdentifier=mysite
User=www-data
Environment=ASPNETCORE_ENVIRONMENT=Production
Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false

[Install]
WantedBy=multi-user.target

הפעילו את השירות: # Шаблон для SQLite (разработка) dotnet new umbraco -n MyProject --friendly-name "Admin" --email [email protected] --password "P@ssw0rd123" --connection-string "Data Source=|DataDirectory|/Umbraco.sqlite.db;Cache=Shared;Foreign Keys=True;Multithread Safety=True" # Шаблон для SQL Server (продакшн) dotnet new umbraco -n MyProject --connection-string "Server=localhost;Database=UmbracoDb;Trusted_Connection=True;TrustServerCertificate=True" .

ההמלצות של מיקרוסופט לפריסת ASP.NET Core מתארות את דרישות הפרוקסי ההפוך (מסמכי Microsoft).

עדכונים וגיבויים

כדי לעדכן את החבילה, הריצו { "ConnectionStrings": { "umbracoDbDSN": "Server=srv;Database=UmbracoDb;User=sa;Password=secret;TrustServerCertificate=True", "umbracoDbDSN_ProviderName": "Microsoft.Data.SqlClient" }, "Umbraco": { "CMS": { "Global": { "Id": "b9c6e1a1-0000-4000-8000-000000000001", "SendVersionCheckResult": false, "UseHttps": true, "ReservedPaths": "~/.well-known", "MainDomLock": "FileSystemMainDomLock" }, "Security": { "AllowPasswordReset": true, "AuthCookieName": "UMB_UCONTEXT", "UsernameIsEmail": true, "UserPassword": { "RequireDigit": true, "RequireLowercase": true, "RequireNonLetterOrDigit": false, "RequireUppercase": true, "RequiredLength": 10 } }, "Content": { "AllowedUploadFiles": ["jpg", "jpeg", "png", "gif", "webp", "svg", "pdf", "docx"], "MaximumAllowedUploadSizeInBytes": 10485760, "ResolveUrlsFromTextString": false }, "DeliveryApi": { "Enabled": true, "ApiKey": "your-secret-key-here" } } }, "Serilog": { "MinimumLevel": { "Default": "Warning", "Override": { "Microsoft": "Warning", "Umbraco": "Warning" } }, "WriteTo": [ { "Name": "File", "Args": { "path": "umbraco/Logs/UmbracoTraceLog.txt", "rollingInterval": "Day", "retainedFileCountLimit": 14 } } ] } } , ואז התחילו את הפרויקט — מיגרציות מוחלות אוטומטית. בייצור, הריצו תחילה מיגרציות בנפרד: <!-- web.config --> <?xml version="1.0" encoding="utf-8"?> <configuration> <location path="." inheritInChildApplications="false"> <system.webServer> <handlers> <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" /> </handlers> <aspNetCore processPath="dotnet" arguments=".\MyProject.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="inprocess"> <environmentVariables> <environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Production" /> </environmentVariables> </aspNetCore> </system.webServer> </location> </configuration> . גיבוי מסד הנתונים ותיקיית server { listen 443 ssl http2; server_name mysite.com; ssl_certificate /etc/letsencrypt/live/mysite.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/mysite.com/privkey.pem; client_max_body_size 20M; location / { proxy_pass http://127.0.0.1:5000; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection keep-alive; 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; proxy_cache_bypass $http_upgrade; } location /media/ { alias /var/www/mysite/wwwroot/media/; expires 30d; add_header Cache-Control "public, immutable"; } } הוא חובה לפני כל עדכון. ודאו אסטרטגיית גיבוי אמינה ל-Umbraco.

מה כלול

רכיב תיאור
בחירת אירוח בחירת תוכנית VPS, התקנת מערכת הפעלה, הגדרת חומת אש.
התקנת Umbraco דרך CLI או Visual Studio, יצירת מנהל, הגדרת backoffice.
תצורת מסד נתונים הגדרת SQL Server, אופטימיזציה של אינדקסים, תזמון גיבויים.
שרת אינטרנט הגדרת Nginx/IIS, תעודת SSL, HTTP/2, gzip.
ניטור ולוגים Serilog, הגדרת רוטציית לוגים, התראות שגיאות.
תיעוד והדרכה מסירת גישה, הוראות למנהלים, הדרכת עורכים.

תהליך עבודה

  1. ניתוח — דיון בדרישות, עומס, מחסנית טכנולוגית.
  2. עיצוב — בחירת אירוח, פרוקסי הפוך, סכמת מסד נתונים.
  3. יישום — התקנה ותצורה לפי רשימת הבדיקה, כולל אוטומציית פריסה.
  4. בדיקות — בדיקות עומס, בדיקות מיגרציות, מהירות תגובה.
  5. פריסה — מעבר לייצור, ניטור השעות הראשונות.
  6. תמיכה — מסירת תיעוד, שירות אחריות.

לוחות זמנים ועלות

התקנה על VPS עם Nginx ו-SQL Server, הגדרת backoffice ומנהל ראשון — מיום אחד. מחזור מלא עם SSL, שירות systemd, הגדרת גיבוי וסוגי תוכן בסיסיים — 2–3 ימים. העלות נעה בין 500 דולר להגדרה בסיסית ל-2,000 דולר לפרויקטים מורכבים עם מודולים מותאמים אישית. צרו קשר לייעוץ והערכה מדויקת.

בחירה בין SQL Server ל-SQLite

קריטריון SQLite SQL Server
ביצועים נמוכים בגישה במקביל גבוהים, תמיכה בטרנזקציות
גיבוי גיבוי מבוסס קבצים גיבוי מקוון, נקודת זמן
אמינות אין שכפול מובנה Always On, אשכולות
המלצה לפיתוח בלבד ייצור בכל מורכבות

אנו מבטיחים פעולה יציבה של פרויקט Umbraco שלכם בזכות ניסיון של מהנדסים מוסמכים. הזמינו התקנה סוהר מ-500 דולר ושכחו מבעיות תשתית. קבלו ייעוץ לפרויקט שלכם — נבחר את התצורה האופטימלית.