Tài liệu Webship

Cài đặt, cấu hình và tự động hóa Webship. [

Cấu hình, xác thực, triển khai và tự động hóa máy chủ biên AI-Native Webship với các ví dụ TOML ngắn gọn và hướng dẫn vận hành theo phiên bản.

Phiên bản tài liệu

Webship 1.1.0Hiện tại

Đã phát hành 2026-08-23. URL này được ghim với bản phát hành đã chọn.

Trình nghe mặc định
127.0.0.1:4433
Cấu hình
TOML
TLS
TLS 1.3

Tổng quan sản phẩm

Một máy chủ giữa mạng và ứng dụng của bạn.

Webship là một máy chủ web tĩnh và biên Rust tự lưu trữ. Một runtime xử lý các giao thức hiện đại, áp dụng chính sách biên, phục vụ các tệp và proxy các yêu cầu ứng dụng.

Giao thông hiện đại

Chấp nhận HTTP/1.1, HTTP/2, và HTTP/3, với TLS 1.3 và một điểm cuối WebTransport tùy chọn.

Phân phối tĩnh và qua proxy

Phục vụ các tệp tĩnh với các bộ xác thực và tệp nén phụ, hoặc chuyển tiếp lưu lượng ứng dụng qua các nhóm nguồn giới hạn.

Mặc định an toàn

Bắt đầu với WAF, kiểm soát DDoS, thách thức bot, tiêu đề bảo mật phản hồi, API Shield, và bảo vệ tập tin chấm được bật.

Hoạt động có thể quan sát

Sử dụng thống kê đã xác thực, số liệu Prometheus, ID yêu cầu, tải lại mượt mà, và bảng điều khiển MCP tùy chọn.

Bắt đầu nhanh

Từ nhị phân phát hành đến bộ lắng nghe khỏe mạnh.

Bắt đầu trên loopback, xác thực mọi thứ trước khi liên kết, và kiểm tra phản hồi sức khỏe tích hợp trước khi thêm lưu lượng công khai.

  1. Chuẩn bị các tệp

    Đặt tệp nhị phân release, cấu hình TOML của nó, root tĩnh, và bất kỳ tệp chứng chỉ và khóa TLS nào đã được cấu hình lên máy chủ.

  2. Xác thực và kiểm tra

    Chạy cả hai lệnh cấu hình. Sửa lỗi đầu tiên và kiểm tra kết quả hiệu quả đã được biên tập trước khi khởi động.

  3. Bắt đầu riêng tư

    Khởi động Webship với tệp TOML đã chọn. Thêm một cặp chứng chỉ đầy đủ hoặc TLS tự động khi site sẵn sàng cho lưu lượng công khai bảo mật.

  4. Xác minh runtime

    Gọi GET /health cục bộ. Sau đó kiểm tra các đường dẫn tĩnh, TLS, các tuyến proxy, quy tắc bảo mật và giám sát có xác thực.

Cấu hình tối giản config.toml
listen = "127.0.0.1:4433"
workers = 4
root = "./public"
Xác thực trước khi khởi động
/usr/local/bin/webship --check-config --config /etc/webship/production.toml
/usr/local/bin/webship --print-effective-config --config /etc/webship/production.toml
Khởi động và kiểm tra
/usr/local/bin/webship --config /etc/webship/production.toml
curl --http3-only --insecure https://127.0.0.1:4433/health

Hướng dẫn Bắt đầu Nhanh cho các Đại lý AI

Kết nối một tác nhân AI với Webship trong năm dòng.

Kết nối Claude Code, OpenAI, DeepSeek, hoặc bất kỳ client MCP tương thích nào thông qua một kênh SSH riêng. Đại lý nhận được bề mặt hoạt động đã xác thực mà không cần chia sẻ bộ nghe công khai hoặc tiết lộ thông tin đăng nhập điều khiển cho lưu lượng internet.

Cấu hình client MCP năm dòng
{
  "mcpServers": {
    "webship": { "url": "https://localhost:19443/mcp",
      "headers": { "Authorization": "Bearer <token>" } }
  } }

Phân phối tĩnh

Phục vụ một thư mục với các mặc định nhận biết giao thức.

Đặt một root toàn cục hoặc theo từng site. Các site TLS mặc định chỉ sử dụng HTTP/3; các site cleartext mặc định sử dụng HTTP/1.1 và H2C. Ghi đè HTTP/1.1, HTTP/2, và HTTP/3 một cách độc lập cho từng site.

Trang tĩnh theo miền
[[sites]]
domain = "app.example.com"
root = "/srv/app"
listen = "0.0.0.0:443"

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

Bộ định tuyến tích hợp hỗ trợ GET và HEAD, phạm vi byte, yêu cầu có điều kiện, bộ xác thực, và các sidecar .br, .zst, và .gz. Đường dẫn tệp bắt đầu bằng dấu chấm mặc định bị từ chối; .well-known vẫn có sẵn.

Lưu lượng ứng dụng

Định tuyến các yêu cầu đến một hoặc nhiều upstream.

Kích hoạt reverse proxy, khớp một host và path, sau đó định nghĩa một chính sách không điều kiện cuối cùng. Webship hỗ trợ các pool giới hạn, kiểm tra sức khỏe, cân bằng tải, ngắt mạch, thử lại an toàn không có body, WebSocket và lưu trữ đệm.

Tuyến API hai nguồn
[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 và HTTP/3

Sử dụng chứng chỉ thủ công hoặc để Webship quản lý chúng.

Webship chấp nhận TLS 1.3. HTTP/3 chạy trên trình nghe UDP tương ứng; bật HTTP/1.1 hoặc HTTP/2 rõ ràng khi một trang TLS cũng cần tương thích TCP.

TLS tự động với 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"

Chính sách biên

Giữ nguyên cơ sở bảo mật.

Webship mặc định kích hoạt các lớp bảo vệ chính của nó. Điều chỉnh giới hạn cho khối lượng công việc của bạn và xác thực sau mỗi thay đổi về quy tắc hoặc chính sách tiêu đề.

Chính sách DDoS và header phản hồi
[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'"

Sử dụng chế độ bình thường cho lưu lượng thông thường, under_attack cho xử lý tấn công chủ động nghiêm ngặt hơn, và lockdown khi chỉ cho phép các probe và đường dẫn được phép rõ ràng có thể truy cập.

Chẩn đoán riêng tư

Kiểm tra edge mà không làm lộ plane điều khiển.

Thống kê và chỉ số Prometheus chạy trên một trình lắng nghe xác thực riêng. Thiết bị đo lường phải được bật bất cứ khi nào một trong hai điểm cuối hoạt động.

Quan sát cục bộ có xác thực
[observability]
instrumentation = true
stats = true
metrics = true
listen = "127.0.0.1:9090"
token = "replace-with-at-least-32-random-printable-ascii-characters"

Hoạt động an toàn

Tải lại có chủ đích. Giữ phục hồi gần kề.

Tải lại cấu hình

Gửi SIGHUP sau khi chỉnh sửa cấu hình dựa trên tệp. Webship xác thực bản thay thế trước khi cài đặt và giữ lại cấu hình đang chạy khi xác thực thất bại.

Nâng cấp và khôi phục

Cài đặt nhị phân mới bên cạnh phiên bản trước, xác thực cấu hình sản xuất với nó, sau đó kiểm tra sức khỏe, TLS, proxy và các chỉ số. Giữ nhị phân trước đó cho đến khi mọi cổng đều vượt qua.

Lệnh reload và 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

Tối ưu hóa dựa trên hồ sơ

Thu thập hồ sơ gốc theo mục tiêu mà không gây nhầm lẫn giữa đào tạo và sản xuất.

Mỗi mục tiêu Webship 1.1 có một CLI quan sát riêng để thu thập dữ liệu hồ sơ LLVM gốc của mục tiêu dưới lưu lượng đại diện của bạn. Sử dụng phiên bản và target triple chính xác, thực hành các tuyến và giao thức quan trọng, và dừng quá trình một cách nhẹ nhàng để nó có thể ghi mọi tệp .profraw.

  1. Chọn đúng mục tiêu

    Tải xuống CLI đào tạo PGO mà phiên bản phát hành và bộ ba mục tiêu Rust của nó hoàn toàn phù hợp với runtime mà bạn dự định tối ưu hóa. Trước tiên hãy xác minh SHA-256 đã được công bố.

  2. Ghi lại lưu lượng đại diện

    Đặt LLVM_PROFILE_FILE vào một thư mục có thể ghi, khởi động CLI đào tạo với một bản sao được xác thực của cấu hình thực, phát lại lưu lượng đại diện trực tiếp và qua proxy ngược, sau đó dừng Webship một cách nhẹ nhàng.

  3. Hợp nhất các hồ sơ thô

    Sử dụng llvm-profdata từ phiên bản trình biên dịch đã ghi lại cho bản phát hành. Hợp nhất mọi tệp .profraw phát ra thành một tệp sparse webship.profdata duy nhất.

  4. Xây dựng lại và kiểm tra

    Chỉ áp dụng hồ sơ đã hợp nhất cho đúng nguồn gốc, trình biên dịch, nhà cung cấp mã hóa, bộ tính năng và mục tiêu đã tạo ra nó. Thực hiện kiểm tra độ chính xác và hiệu suất trước khi thăng cấp.

Linux, macOS và 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
Hợp nhất với bộ công cụ LLVM phù hợp
llvm-profdata merge -sparse ./profiles/*.profraw -o ./webship.profdata

Tham khảo dòng lệnh

Diện tích nhỏ, khởi động rõ ràng.

webship [OPTIONS] | webship update [OPTIONS]

-c, --config PATH
Chọn tập tin TOML. Nếu nó không tồn tại, Webship sẽ tạo tập tin này với một định danh TLS localhost riêng tư.
--check-config
Xác nhận cấu hình hoàn chỉnh và thoát mà không khởi động các trình nghe.
--print-effective-config
In ra cấu hình hợp nhất hiệu quả với các bí mật đã được loại bỏ.
update
Xác minh bản mô tả cộng đồng đã ký, chọn đúng mục tiêu nền tảng này, và cài đặt phiên bản mới hơn khi có sẵn.
--help / --version
In hướng dẫn lệnh hoặc phiên bản Webship đã cài đặt.

Các chế độ thất bại phổ biến

Bắt đầu với cấu hình, sau đó di chuyển ra ngoài.

  1. Chạy --check-config và sửa lỗi đầu tiên được báo cáo; các trường TOML không xác định sẽ bị từ chối.
  2. Xác nhận các cổng TCP và UDP đã được cấu hình có sẵn và được firewall cho phép.
  3. Xác nhận rằng chứng chỉ và khóa tồn tại, có thể đọc bởi tài khoản dịch vụ, và tạo thành một cặp khớp.
  4. Đối với TLS tự động, hãy xác nhận mọi tên miền đã được cấu hình đều phân giải đến máy chủ Webship.
  5. Gọi /health trên trình nghe ứng dụng cục bộ trước khi kiểm tra qua DNS hoặc đường dẫn tải ngoài.
  6. Bật khả năng quan sát có xác thực tạm thời khi cần bằng chứng thời gian chạy.