Serverkonfiguration
Eine ordnungsgemäße Server-Einrichtung ist entscheidend für Webanwendungen in der Produktion. Hyperlane bietet Ihnen zwei Möglichkeiten, Ihren Server zu verwalten: ServerConfig und RequestConfig.
ServerConfig verwaltet den HTTP-Server selbst. Sie verwenden es, um Folgendes festzulegen:
- Address: Verwenden Sie 0.0.0.0:80, um auf allen Schnittstellen zu lauschen. Verwenden Sie 127.0.0.1:8080, um den Zugriff auf Ihren lokalen Rechner zu beschränken.
- Nodelay: Setzen Sie dies auf
true, um die Latenz zu verringern. Es sendet kleine Pakete sofort, anstatt sie zu puffern. - TTL: Dies legt die Time to Live für ausgehende Pakete fest. Ein Wert von 128 eignet sich für die meisten Fälle.
RequestConfig verwaltet einzelne HTTP-Anfragen. Dies schützt Ihren Server vor Ressourcenerschöpfung und Angriffen. Sie können diese Limits mithilfe von JSON festlegen:
- buffer_size: Die Größe des Lesepuffers in Bytes.
- max_path_size: Die maximale URL-Pfadlänge.
- max_header_count: Das Limit für Header pro Anfrage.
- max_body_size: Die maximal zulässige Größe des Request-Bodys. Dies verhindert Denial-of-Service-Angriffe.
- read_timeout_ms: Das Zeitlimit für das Lesen von Anfragedaten.
Hyperlane ermöglicht es Ihnen, diese Einstellungen aus einem JSON-String zu laden. Dies erleichtert die Verwendung von Umgebungsvariablen in containerisierten Umgebungen.
Best Practices für die Produktion:
- Verwenden Sie JSON für die Konfiguration. Dies macht Deployments flexibel.
- Legen Sie strenge Anfragen-Limits fest. Passen Sie Ihre
max_body_sizean Ihren tatsächlichen Bedarf an. - Aktivieren Sie
nodelayfür API-Server, um die Latenz niedrig zu halten. - Legen Sie Read-Timeouts fest. Dies verhindert, dass langsame Clients Verbindungen offen halten.
- Binden Sie den Server nach Möglichkeit an spezifische Schnittstellen anstatt an 0.0.0.0.
Hyperlane gibt Ihnen die Kontrolle durch Code oder JSON. Dieser zweistufige Ansatz stellt sicher, dass Ihr Server schnell und sicher bleibt.
Project Code: https://github.com/hyperlane-dev/hyperlane Source: https://dev.to/tengxgfyrz67s/server-configuration-1dp9