סקירת מוצר
שרת אחד בין הרשת ליישום שלך.
Webship הוא קצה Rust ואחסון עצמי של שרת אינטרנט סטטי. סביבה אחת מסיימת פרוטוקולים מודרניים, מיישמת מדיניות קצה, מספקת קבצים, ומתווכת בקשות יישומים.
תחבורה מודרנית
קבל HTTP/1.1, HTTP/2, ו-HTTP/3, עם TLS 1.3 ו-WebTransport אופציונלי בקצה.
אספקה סטטית ומתווכת
שמור קבצים סטטיים עם מאמתים ו-sidecars דחוסים מראש, או פרוקסי תעבורת אפליקציה דרך מאגרי upstream מוגבלים.
ברירות מחדל מאובטחות
התחל עם WAF, בקרות DDoS, אתגר בוט, כותרות אבטחת תגובה, API Shield, והגנה על קובצי נקודה מופעלים.
פעולות ניתנות לתצפית
השתמש בסטטיסטיקות מאומתות, מדדי Prometheus, מזהי בקשה, טעינה מחודשת חלקה, ולוח בקרה MCP אופציונלי.
התחלה מהירה
מגרסת בינוקי לשומע בריא.
התחל בלופרבק, אמת הכל לפני חיבור, וודא את תגובת הבריאות המובנית לפני הוספת תעבורה ציבורית.
הכן קבצים
מקם את קובץ הבינארי של הגרסה, קובץ התצורה TOML שלו, השורש הסטטי, וכל קובץ תעודה ומפתח TLS שהוגדר במכשיר.
אמת ובדוק
הפעל את שתי הפקודות של התצורה. תקן את השגיאה הראשונה ובדוק את התוצאה היעילה המוצנעת לפני ההפעלה.
התחל באופן פרטי
הפעל את Webship עם קובץ TOML הנבחר. הוסף זוג תעודה מלא או TLS אוטומטי כאשר האתר מוכן לתנועה ציבורית מאובטחת.
אמת את סביבות הריצה
קרא ל-GET /health באופן מקומי. לאחר מכן בדוק נתיבים סטטיים, TLS, נתיבי פרוקסי, כללי אבטחה ומעקב מאומת.
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. הסוכן מקבל משטח פעולות מאומת מבלי לשתף את המאזין הציבורי או לחשוף את אישורי השליטה לתעבורת אינטרנט.
{
"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 ומטמון.
[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 = 30000TLS ו-HTTP/3
השתמש בתעודות ידניות או אפשר ל-Webship לנהל אותם.
Webship מקבל TLS 1.3. HTTP/3 רץ מעל מאזין UDP מתאים; הפעל HTTP/1.1 או HTTP/2 במפורש כאשר אתר TLS גם צריך תאימות TCP.
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]
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, פרוקסי ומדדים. שמרו את הבינארי הקודם עד שכל השערים יעברו בהצלחה.
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 [OPTIONS] | webship update [OPTIONS]
-c, --config PATH- בחר את קובץ ה-TOML. אם הוא לא קיים, Webship ייצור אותו עם זהות TLS פרטית ל-localhost.
--check-config- אמת את הקונפיגורציה המלאה וצא מבלי להתחיל מאזינים.
--print-effective-config- הדפס את הקונפיגורציה האפקטיבית הממוזגת כאשר הסודות הוסרו.
עדכון- אמת את המניפסט הקהילתי החתום, בחר במדויק את יעד הפלטפורמה הזה, והתקן גרסה חדשה יותר אם קיימת.
--help / --גרסה- הדפס עזרה לפקודה או את גרסת Webship המותקנת.
מצבי כשל נפוצים
התחילו מהגדרה, לאחר מכן התקדמו כלפי חוץ.
- הפעל --check-config ותתקן את השגיאה המדווחת הראשונה; שדות TOML לא מוכרים נדחים.
- אשרו שהפורטות TCP ו-UDP שהוגדרו זמינים ומאושרים על ידי חומת האש.
- אשר שהאישור והמפתח קיימים, ניתנים לקריאה על ידי חשבון השירות, ומהווים זוג תואם.
- עבור TLS אוטומטי, אשר שכל דומיין שהוגדר נפתר אל המארח Webship.
- התקשר ל-/health במאזין היישום המקומי לפני בדיקה דרך DNS או דרך עומס חיצוני.
- אפשר תצפית מאומתת באופן זמני כאשר נדרשת הוכחה בזמן הריצה.