Konfiguracja serwera
Prawidłowa konfiguracja serwera jest kluczowa dla produkcyjnych aplikacji internetowych. Hyperlane oferuje dwa sposoby zarządzania serwerem: ServerConfig i RequestConfig.
ServerConfig zarządza samym serwerem HTTP. Używa się go do ustawienia:
- Address: Użyj 0.0.0.0:80, aby nasłuchiwać na wszystkich interfejsach. Użyj 127.0.0.1:8080, aby ograniczyć dostęp do lokalnej maszyny.
- Nodelay: Ustaw tę wartość na true, aby zmniejszyć opóźnienia. Powoduje to natychmiastowe wysyłanie małych pakietów zamiast ich buforowania.
- TTL: Ustawia wartość Time to Live dla wychodzących pakietów. Wartość 128 sprawdza się w większości przypadków.
RequestConfig zarządza poszczególnymi żądaniami HTTP. Chroni to serwer przed wyczerpaniem zasobów i atakami. Limity te można ustawić za pomocą JSON:
- buffer_size: Rozmiar bufora odczytu w bajtach.
- max_path_size: Maksymalna długość ścieżki URL.
- max_header_count: Limit nagłówków na żądanie.
- max_body_size: Maksymalna dozwolona wielkość ciała żądania. Zapobiega to atakom typu denial-of-service.
- read_timeout_ms: Limit czasu na odczyt danych żądania.
Hyperlane pozwala wczytywać te ustawienia z ciągu znaków JSON. Ułatwia to korzystanie ze zmiennych środowiskowych w środowiskach kontenerowych.
Dobre praktyki dla środowisk produkcyjnych:
- Używaj JSON do konfiguracji. Zapewnia to elastyczność wdrożeń.
- Ustaw rygorystyczne limity żądań. Dopasuj max_body_size do rzeczywistych potrzeb.
- Włącz nodelay dla serwerów API, aby utrzymać niskie opóźnienia.
- Ustaw limity czasu odczytu (read timeouts). Zapobiega to utrzymywaniu otwartych połączeń przez wolnych klientów.
- W miarę możliwości wiąż serwer z konkretnymi interfejsami zamiast 0.0.0.0.
Hyperlane daje Ci kontrolę poprzez kod lub JSON. To dwupoziomowe podejście zapewnia szybkość i bezpieczeństwo serwera.
Kod projektu: https://github.com/hyperlane-dev/hyperlane Źródło: https://dev.to/tengxgfyrz67s/server-configuration-1dp9