תיעוד של Webship

התקן, הגדר ואוטומציה של Webship.

הגדר, אמת, פרוס ואוטומציה של שרת הקצה AI-Native Webship עם דוגמאות TOML תמציתיות והנחיות תפעול שמקובעות בגרסה.

גרסת התיעוד

Webship 1.1.0נוכחי

שוחרר 2026-08-23. URL זה מיועד לגרסה הנבחרת.

המאזין כבררת מחדל
127.0.0.1:4433
תצורה
TOML
TLS
TLS 1.3

סקירת מוצר

שרת אחד בין הרשת ליישום שלך.

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

תחבורה מודרנית

קבל HTTP/1.1, HTTP/2, ו-HTTP/3, עם TLS 1.3 ו-WebTransport אופציונלי בקצה.

אספקה סטטית ומתווכת

שמור קבצים סטטיים עם מאמתים ו-sidecars דחוסים מראש, או פרוקסי תעבורת אפליקציה דרך מאגרי upstream מוגבלים.

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

התחל עם WAF, בקרות DDoS, אתגר בוט, כותרות אבטחת תגובה, API Shield, והגנה על קובצי נקודה מופעלים.

פעולות ניתנות לתצפית

השתמש בסטטיסטיקות מאומתות, מדדי Prometheus, מזהי בקשה, טעינה מחודשת חלקה, ולוח בקרה MCP אופציונלי.

התחלה מהירה

מגרסת בינוקי לשומע בריא.

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

  1. הכן קבצים

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

  2. אמת ובדוק

    הפעל את שתי הפקודות של התצורה. תקן את השגיאה הראשונה ובדוק את התוצאה היעילה המוצנעת לפני ההפעלה.

  3. התחל באופן פרטי

    הפעל את Webship עם קובץ TOML הנבחר. הוסף זוג תעודה מלא או TLS אוטומטי כאשר האתר מוכן לתנועה ציבורית מאובטחת.

  4. אמת את סביבות הריצה

    קרא ל-GET /health באופן מקומי. לאחר מכן בדוק נתיבים סטטיים, TLS, נתיבי פרוקסי, כללי אבטחה ומעקב מאומת.

config.toml מינימלי
listen = "127.0.0.1:4433"
workers = 4
root = "./public"
אמת לפני הפעלה
/usr/local/bin/webship --check-config --config /etc/webship/production.toml
/usr/local/bin/webship --print-effective-config --config /etc/webship/production.toml
התחל ואמת
/usr/local/bin/webship --config /etc/webship/production.toml
curl --http3-only --insecure https://127.0.0.1:4433/health

מדריך התחלה מהירה לסוכני בינה מלאכותית

חבר סוכן AI ל-Webship בחמישה שורות.

חבר לקוח MCP תואם כמו Claude Code, OpenAI, DeepSeek או כל אחד אחר דרך מנהרה פרטית של SSH. הסוכן מקבל משטח פעולות מאומת מבלי לשתף את המאזין הציבורי או לחשוף את אישורי השליטה לתעבורת אינטרנט.

תצורת לקוח MCP בחמישה שורות
{
  "mcpServers": {
    "webship": { "url": "https://localhost:19443/mcp",
      "headers": { "Authorization": "Bearer <token>" } }
  } }

מסירה סטטית

שֲׁרוֹת ספרייה עם ברירות מחדל מודעות לפרוטוקול.

הגדר שורש באופן גלובלי או לכל אתר. אתרי TLS ברירת המחדל הם HTTP/3 בלבד; אתרי טקסט רגיל ברירת המחדל הם HTTP/1.1 ו-H2C. ניתן להחליף את HTTP/1.1, HTTP/2 ו-HTTP/3 באופן עצמאי לכל אתר.

אתר סטטי ייחודי לדומיין
[[sites]]
domain = "app.example.com"
root = "/srv/app"
listen = "0.0.0.0:443"

[sites.protocols]
h1 = true
h2 = true
h3 = true

נתב מובנה תומך ב-GET ו-HEAD, טווחי בתים, בקשות מותנות, בודקים, וקבצי .br, .zst ו-.gz בצד. נתיבי קבצים המתחילים בנקודה נדחים כברירת מחדל; .well-known נשאר זמין.

תעבורת יישומים

נתב בקשות לאחד או יותר מהמוצרים upstream.

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

נתיב API עם שני מקוריים
[reverse_proxy]
enabled = true

[[reverse_proxy.routes]]
domain = "app.example.com"
path_prefix = "/api"
strip_path_prefix = true
upstreams = ["127.0.0.1:8080", "127.0.0.1:8081"]

[[reverse_proxy.policies]]
name = "default"
hosts = []
path_prefixes = ["/"]
methods = []
max_body_bytes = 1048576
total_timeout_ms = 30000

TLS ו-HTTP/3

השתמש בתעודות ידניות או אפשר ל-Webship לנהל אותם.

Webship מקבל TLS 1.3. HTTP/3 רץ מעל מאזין UDP מתאים; הפעל HTTP/1.1 או HTTP/2 במפורש כאשר אתר TLS גם צריך תאימות TCP.

TLS אוטומטי עם TLS-ALPN-01
listen = "0.0.0.0:443"

[automatic_tls]
enabled = true
directory_url = "https://acme-v02.api.letsencrypt.org/directory"
cache_dir = "/var/lib/webship/acme"
contacts = ["mailto:ops@example.com"]
accept_terms_of_service = true

[[sites]]
domain = "app.example.com"
root = "/srv/app"

מדיניות קצה

שמור על קו בסיס מאובטח ללא שינוי.

Webship מפעילה את שכבות ההגנה הראשיות שלה כברירת מחדל. כוונן את המגבלות לעומס העבודה שלך ואמת לאחר כל שינוי בכלל או במדיניות הכותרות.

DDoS ומדיניות כותרות תגובה
[ddos]
enabled = true
mode = "normal"
requests_per_minute = 600
burst = 100
block_seconds = 300

[security.response_headers]
enabled = true
nosniff = true
frame_deny = true
referrer_no_referrer = true
hsts = "max-age=31536000; includeSubDomains"
content_security_policy = "default-src 'self'; frame-ancestors 'none'"

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

אבחון פרטי

בדוק את הקצה מבלי לחשוף את מישור השליטה.

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

תצפית מקומית מאומתת
[observability]
instrumentation = true
stats = true
metrics = true
listen = "127.0.0.1:9090"
token = "replace-with-at-least-32-random-printable-ascii-characters"

פעולות בטוחות

טען מחדש בכוונה. שמור על אפשרות חזרה קרובה.

טעינת תצורה מחדש

שלח SIGHUP לאחר עריכת קובץ תצורה מבוסס קובץ. Webship מאמת את ההחלפה לפני התקנתה ושומרת על התצורה הפועלת כאשר האימות נכשל.

שדרוג וחזרה אחורה

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

טעינה מחדש ופקודות systemd
kill -HUP "$(pidof webship)"
/usr/local/bin/webship update --config /etc/webship/production.toml
sudo systemctl daemon-reload
sudo systemctl enable --now webship
sudo systemctl status webship

אופטימיזציה מונחית פרופיל

אסוף פרופילים של יעד-מקורי מבלי לבלבל בין אימון לייצור.

לכל Webship 1.1 יש CLI ממוכן נפרד לאיסוף נתוני פרופיל LLVM מקוריים של היעד תחת התנועה המייצגת שלך. השתמש בגרסה המדויקת ובמשולש היעד, הפעל את הנתיבים והפרוטוקולים שבחשובים, והפסיק את התהליך בצורה מסודרת כדי שניתן יהיה לרוקן כל קובץ .profraw.

  1. בחר את היעד המדויק

    הורד את CLI לאימון PGO שגרסת השחרור שלו ושלושת היעדים Rust תואמת בדיוק לריצה שאתה מתכוון לאופטימיזציה. ודא תחילה את ערך SHA-256 הפורסם שלו.

  2. תפוס תעבורה מייצגת

    הגדר את LLVM_PROFILE_FILE לספרייה ניתנת לכתיבה, הפעל את ה-CLI של האימון עם עותק מאומת של ההגדרה האמיתית, השמיע תנועה ישירה ומסוכנת מייצגת דרך פרוקסי הפוך, ואז עצור את Webship בצורה מסודרת.

  3. מזג פרופילים גולמיים

    השתמש ב-llvm-profdata מהקומפיילר שנוצר להפקת הגרסה. מיזג כל קובץ .profraw שיוצר לקובץ אחד בשם webship.profdata.

  4. בנה מחדש והעבר שער

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

Linux, macOS ו-OpenHarmony
mkdir -p ./profiles
export LLVM_PROFILE_FILE="$PWD/profiles/webship-%p-%m.profraw"
./webship-pgo-training-1.1.0-<target> --config ./webship.toml
Windows PowerShell
New-Item -ItemType Directory -Force ./profiles
$env:LLVM_PROFILE_FILE = "$PWD/profiles/webship-%p-%m.profraw"
.\webship-pgo-training-1.1.0-<target>.exe --config .\webship.toml
מיזוג עם סט הכלים של LLVM התואם
llvm-profdata merge -sparse ./profiles/*.profraw -o ./webship.profdata

מדריך לפקודות שורת הפקודה

משטח קטן, התחלה מפורשת.

webship [OPTIONS] | webship update [OPTIONS]

-c, --config PATH
בחר את קובץ ה-TOML. אם הוא לא קיים, Webship ייצור אותו עם זהות TLS פרטית ל-localhost.
--check-config
אמת את הקונפיגורציה המלאה וצא מבלי להתחיל מאזינים.
--print-effective-config
הדפס את הקונפיגורציה האפקטיבית הממוזגת כאשר הסודות הוסרו.
עדכון
אמת את המניפסט הקהילתי החתום, בחר במדויק את יעד הפלטפורמה הזה, והתקן גרסה חדשה יותר אם קיימת.
--help / --גרסה
הדפס עזרה לפקודה או את גרסת Webship המותקנת.

מצבי כשל נפוצים

התחילו מהגדרה, לאחר מכן התקדמו כלפי חוץ.

  1. הפעל --check-config ותתקן את השגיאה המדווחת הראשונה; שדות TOML לא מוכרים נדחים.
  2. אשרו שהפורטות TCP ו-UDP שהוגדרו זמינים ומאושרים על ידי חומת האש.
  3. אשר שהאישור והמפתח קיימים, ניתנים לקריאה על ידי חשבון השירות, ומהווים זוג תואם.
  4. עבור TLS אוטומטי, אשר שכל דומיין שהוגדר נפתר אל המארח Webship.
  5. התקשר ל-/health במאזין היישום המקומי לפני בדיקה דרך DNS או דרך עומס חיצוני.
  6. אפשר תצפית מאומתת באופן זמני כאשר נדרשת הוכחה בזמן הריצה.