เอกสาร 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 ทางเลือก

การจัดส่งแบบคงที่และแบบพร็อกซี

ให้บริการไฟล์สถิติด้วยตัวตรวจสอบและตัวเสริมที่บีบอัดล่วงหน้า หรือพร็อกซี่การจราจรของแอปพลิเคชันผ่านกลุ่มต้นน้ำที่จำกัด

ค่าเริ่มต้นที่ปลอดภัย

เริ่มต้นด้วย WAF, การควบคุม DDoS, การทดสอบบ็อต, เฮดเดอร์ความปลอดภัยของการตอบสนอง, API Shield, และการป้องกันไฟล์จุดที่เปิดใช้งาน

การดำเนินงานที่สามารถสังเกตได้

ใช้สถิติที่ยืนยันแล้ว, เมตริกของ Prometheus, รหัสคำขอ, การรีโหลดอย่างนุ่มนวล, และแผงควบคุม MCP ทางเลือก

เริ่มต้นอย่างรวดเร็ว

จากไบนารีเวอร์ชันที่ปล่อยไปสู่ผู้ฟังที่ทำงานปกติ

เริ่มต้นบน loopback, ตรวจสอบทุกอย่างก่อนผูก, และยืนยันการตอบกลับสุขภาพในตัวก่อนเพิ่มทราฟฟิกสาธารณะ

  1. เตรียมไฟล์

    วางไฟล์ไบนารีสำหรับการปล่อย, ไฟล์การตั้งค่า TOML, รากสถิติคงที่ และไฟล์ใบรับรอง TLS และคีย์ที่ตั้งค่าไว้ใด ๆ บนโฮสต์

  2. ตรวจสอบและตรวจสอบ

    เรียกใช้คำสั่งการตั้งค่าทั้งคู่ แก้ไขข้อผิดพลาดแรกและตรวจสอบผลลัพธ์ที่แก้ไขแล้วก่อนเริ่มต้น

  3. เริ่มใช้งานแบบส่วนตัว

    เริ่ม Webship ด้วยไฟล์ TOML ที่เลือก ใส่คู่ใบรับรองครบถ้วนหรือ TLS อัตโนมัติเมื่อไซต์พร้อมสำหรับการจราจรสาธารณะที่ปลอดภัย

  4. ตรวจสอบ runtime

    เรียก 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

เชื่อมต่อเอเจนต์ AI กับ Webship ในห้าบรรทัด

เชื่อมต่อ Claude Code, OpenAI, DeepSeek, หรือไคลเอนต์ MCP ที่เข้ากันได้ผ่านช่องทาง SSH ส่วนตัว ตัวแทนจะได้รับพื้นผิวการดำเนินการที่ได้รับการตรวจสอบสิทธิ์โดยไม่ต้องแชร์ตัวฟังสาธารณะหรือเปิดเผยข้อมูลการควบคุมต่อการจราจรอินเทอร์เน็ต

การกำหนดค่า MCP client ในห้าบรรทัด
{
  "mcpServers": {
    "webship": { "url": "https://localhost:19443/mcp",
      "headers": { "Authorization": "Bearer <token>" } }
  } }

การส่งแบบคงที่

ให้บริการไดเรกทอรีด้วยค่าเริ่มต้นที่รับรู้โปรโตคอล

ตั้งค่า root ทั้งแบบทั่วโลกหรือเฉพาะแต่ละไซต์. ไซต์ 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 โดยค่าเริ่มต้นเส้นทางไฟล์จุด (dot-file) จะถูกปฏิเสธ; .well-known ยังคงสามารถใช้งานได้

ทราฟฟิกของแอปพลิเคชัน

เส้นทางคำขอไปยังอัพสตรีมหนึ่งหรือมากกว่า

เปิดใช้การทำรีเวิร์สพร็อกซี่, จับคู่โฮสต์และเส้นทาง จากนั้นกำหนดนโยบายสุดท้ายที่ไม่มีเงื่อนไข 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 เปิดใช้งานชั้นป้องกันหลักโดยค่าเริ่มต้น ปรับขีดจำกัดให้เหมาะสมกับภาระงานของคุณและตรวจสอบความถูกต้องหลังจากที่มีการเปลี่ยนแปลงกฎหรือ header-policy ทุกครั้ง

นโยบาย DDoS และ response-header
[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 การทำงานเป็นพร็อกซี่ และเมตริก รักษาไบนารีก่อนหน้าจนกว่าทุกด่านจะผ่าน

คำสั่ง Reload และ 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 ของเป้าหมายโดยตรงภายใต้การจราจรที่เป็นตัวแทนของคุณ ใช้เวอร์ชันและ triple ของเป้าหมายที่ถูกต้อง, ทดลองเส้นทางและโปรโตคอลที่สำคัญ, และหยุดกระบวนการอย่างเรียบร้อยเพื่อให้สามารถเขียนไฟล์ .profraw ทุกไฟล์ได้

  1. เลือกเป้าหมายที่ต้องการอย่างแม่นยำ

    ดาวน์โหลด CLI การฝึก PGO ที่เวอร์ชันการปล่อยและตัวยก Rust ตรงกับรันไทม์ที่คุณตั้งใจจะปรับแต่ง ตรวจสอบ SHA-256 ที่เผยแพร่ก่อน

  2. จับภาพทราฟฟิกตัวแทน

    ตั้งค่า LLVM_PROFILE_FILE ไปที่ไดเรกทอรีที่สามารถเขียนได้, เริ่ม CLI การฝึกด้วยสำเนาการกำหนดค่าจริงที่ตรวจสอบแล้ว, เล่นซ้ำการจราจรแบบตรงและผ่านพร็อกซีกลับที่เป็นตัวแทน, จากนั้นหยุด Webship อย่างเรียบร้อย

  3. รวมโปรไฟล์ดิบ

    ใช้ llvm-profdata จากคอมไพเลอร์ที่สร้างสำหรับการเผยแพร่ รวมไฟล์ .profraw ทุกไฟล์ที่สร้างออกมาเป็นไฟล์ sparse 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
พิมพ์การตั้งค่าที่รวมเข้าด้วยกันโดยเอาข้อมูลลับออก
update
ตรวจสอบ manifest ของชุมชนที่ลงนามแล้ว เลือกเป้าหมายแพลตฟอร์มนี้โดยตรง และติดตั้งเวอร์ชันใหม่กว่าเมื่อมี
--help / --version
พิมพ์ความช่วยเหลือของคำสั่งหรือเวอร์ชัน Webship ที่ติดตั้งอยู่

รูปแบบความล้มเหลวทั่วไป

เริ่มจากการกำหนดค่าแล้วค่อยเคลื่อนออกไป

  1. เรียกใช้ --check-config และแก้ไขข้อผิดพลาดแรกที่รายงาน; ฟิลด์ TOML ที่ไม่รู้จักจะถูกปฏิเสธ
  2. ยืนยันว่าพอร์ต TCP และ UDP ที่กำหนดสามารถใช้งานได้และได้รับอนุญาตโดยไฟร์วอลล์
  3. ยืนยันว่าใบรับรองและกุญแจมีอยู่ สามารถอ่านได้โดยบัญชีบริการ และเป็นคู่ที่ตรงกัน
  4. สำหรับ TLS อัตโนมัติ ยืนยันว่าทุกโดเมนที่ตั้งค่าชี้ไปยังโฮสต์ Webship
  5. เรียก /health บนตัวฟังแอปพลิเคชันภายในก่อนทดสอบผ่าน DNS หรือเส้นทางโหลดภายนอก
  6. เปิดใช้งานการสังเกตด้วยการตรวจสอบสิทธิ์ชั่วคราวเมื่อจำเป็นต้องมีหลักฐานในเวลารันไทม์