Ürün genel bakışı
Ağ ile uygulamanız arasında bir sunucu.
Webship kendi kendine barındırılan bir Rust kenar ve statik web sunucusudur. Bir çalışma zamanı modern protokolleri sonlandırır, kenar politikasını uygular, dosyaları sunar ve uygulama isteklerini proxyler.
Modern taşıma
HTTP/1.1, HTTP/2 ve HTTP/3 kabul edin; TLS 1.3 ve isteğe bağlı bir WebTransport uç noktası ile.
Statik ve proxyli teslimat
Doğrulayıcılar ve önceden sıkıştırılmış yan arabirimlerle statik dosyaları sunun veya uygulama trafiğini sınırlandırılmış üst havuzlar üzerinden yönlendirin.
Güvenli varsayılanlar
WAF, DDoS kontrolleri, bot testi, yanıt güvenlik başlıkları, API Shield ve nokta-dosyası koruması etkinleştirerek başlayın.
Gözlemlenebilir operasyonlar
Kimlik doğrulamalı istatistikleri, Prometheus metriklerini, istek kimliklerini, kademeli yeniden yüklemeleri ve isteğe bağlı MCP kontrol düzlemini kullanın.
Hızlı başlangıç
Sürüm ikili dosyadan sağlıklı dinleyiciye.
Loopback üzerinde başlatın, bağlamadan önce her şeyi doğrulayın ve genel trafiği eklemeden önce yerleşik sağlık yanıtını doğrulayın.
Dosyaları hazırlayın
Sürüm ikilisini, TOML yapılandırmasını, statik kökü ve yapılandırılmış herhangi bir TLS sertifikası ve anahtar dosyalarını sunucuda yerleştirin.
Doğrulayın ve inceleyin
Her iki yapılandırma komutunu çalıştırın. İlk hatayı düzeltin ve başlatmadan önce sansürlenmiş etkin sonucu inceleyin.
Özel olarak başlatın
Seçilen TOML dosyası ile Webship başlatın. Site güvenli genel trafiğe hazır olduğunda tam bir sertifika çifti veya otomatik TLS ekleyin.
Çalışma zamanını doğrulayın
Yerel olarak GET /health çağrısı yapın. Ardından statik yolları, TLS'yi, proxy rotalarını, güvenlik kurallarını ve kimlik doğrulamalı izlemeyi test edin.
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/healthYapay Zeka Ajanları için Hızlı Başlangıç Kılavuzu
Bir AI ajanını Webship ile beş satırda bağlayın.
Claude Code, OpenAI, DeepSeek veya herhangi bir uyumlu MCP istemcisini özel bir SSH tüneli üzerinden bağlayın. Ajan, genel dinleyiciyi paylaşmadan veya kontrol kimlik bilgilerini internet trafiğine açmadan kimlik doğrulamalı bir operasyon yüzeyi alır.
{
"mcpServers": {
"webship": { "url": "https://localhost:19443/mcp",
"headers": { "Authorization": "Bearer <token>" } }
} }Statik dağıtım
Bir dizini protokole duyarlı varsayılanlarla sunun.
Bir kök dizini global olarak veya her site için ayarlayın. TLS siteleri varsayılan olarak sadece HTTP/3 kullanır; açık metin siteleri varsayılan olarak HTTP/1.1 ve H2C kullanır. HTTP/1.1, HTTP/2 ve HTTP/3 her site için bağımsız olarak geçersiz kılınabilir.
[[sites]]
domain = "app.example.com"
root = "/srv/app"
listen = "0.0.0.0:443"
[sites.protocols]
h1 = true
h2 = true
h3 = trueDahili yönlendirici GET ve HEAD, bayt aralıkları, koşullu istekler, doğrulayıcılar ve .br, .zst ve .gz yan dosyalarını destekler. Nokta ile başlayan dosya yolları varsayılan olarak reddedilir; .well-known kullanılabilir olmaya devam eder.
Uygulama trafiği
İstekleri bir veya daha fazla üst akışa yönlendirin.
Ters proxylemeyi etkinleştirin, bir host ve yolu eşleştirin, sonra nihai koşulsuz bir politika tanımlayın. Webship sınırlı havuzları, sağlık kontrollerini, yük dengeleme, devre kesicileri, güvenli gövdesiz yeniden denemeleri, WebSocket'leri ve önbellekleme desteğini destekler.
[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 ve HTTP/3
Manuel sertifikalar kullanın veya Webship'ın bunları yönetmesine izin verin.
Webship, TLS 1.3'ü kabul eder. HTTP/3, eşleşen UDP dinleyicisi üzerinde çalışır; TLS sitesi ayrıca TCP uyumluluğu gerektirdiğinde HTTP/1.1 veya HTTP/2'i açıkça etkinleştirin.
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"Uç politika
Güvenli temel ayarları koruyun.
Webship ana koruma katmanlarını varsayılan olarak etkinleştirir. İş yükünüze uygun sınırları ayarlayın ve her kural veya başlık-politikası değişikliğinden sonra doğrulayın.
[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'"Normal trafik için normal modu, daha sıkı aktif saldırı işlemi için under_attack modunu ve yalnızca taramalar ile açıkça izin verilen yolların erişilebilir olmasını istediğinizde lockdown modunu kullanın.
Özel teşhisler
Kontrol düzlemini açığa çıkarmadan kenarı inceleyin.
İstatistikler ve Prometheus metrikleri ayrı bir kimlik doğrulamalı dinleyicide çalıştırılır. Her iki uç nokta etkin olduğunda enstrümantasyon etkinleştirilmelidir.
[observability]
instrumentation = true
stats = true
metrics = true
listen = "127.0.0.1:9090"
token = "replace-with-at-least-32-random-printable-ascii-characters"Güvenli işlemler
Kasıtlı olarak yeniden yükle. Geri alma işlemini yakın tut.
Yapılandırma yeniden yükleme
Dosya tabanlı bir yapılandırmayı düzenledikten sonra SIGHUP gönderin. Webship yüklemeden önce değişikliği doğrular ve doğrulama başarısız olduğunda çalışan yapılandırmayı korur.
Yükseltme ve geri alma
Yeni ikili dosyayı önceki sürümün yanına kurun, üretim yapılandırmasını onunla doğrulayın, ardından sağlık, TLS, proxy ve metrikleri kontrol edin. Her kapı geçene kadar önceki ikili dosyayı saklayın.
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 webshipKomut satırı referansı
Küçük yüzey, açık başlangıç.
webship [OPTIONS] | webship update [OPTIONS]
-c, --config PATH- TOML dosyasını seçin. Eğer yoksa, Webship bunu özel bir localhost TLS kimliği ile oluşturur.
--check-config- Tam yapılandırmayı doğrulayın ve dinleyicileri başlatmadan çıkın.
--print-effective-config- Birleştirilmiş etkili yapılandırmayı, sırlar çıkarılmış şekilde yazdırın.
update- İmzalanmış topluluk manifestosunu doğrulayın, bu kesin platform hedefini seçin ve mevcutsa daha yeni bir sürüm yükleyin.
--help / --version- Komut yardımını veya yüklü Webship sürümünü yazdırın.
Yaygın hata modları
Konfigürasyonla başlayın, sonra dışa doğru ilerleyin.
- --check-config çalıştırın ve bildirilen ilk hatayı düzeltin; bilinmeyen TOML alanları reddedilir.
- Yapılandırılmış TCP ve UDP portlarının kullanılabilir ve güvenlik duvarı tarafından izin verildiğinden emin olun.
- Sertifikanın ve anahtarın mevcut olduğunu, servis hesabı tarafından okunabildiğini ve eşleşen bir çift oluşturduğunu doğrulayın.
- Otomatik TLS için, yapılandırılmış her alan adının Webship ana bilgisayarına çözüldüğünü doğrulayın.
- DNS veya harici yük yolu üzerinden test etmeden önce yerel uygulama dinleyicisinde /health çağrısı yapın.
- Çalışma zamanı kanıtı gerektiğinde kimlik doğrulamalı gözlemlenebilirliği geçici olarak etkinleştirin.