Webový server

Upravit obsah stránky

Ačkoli je webový server technicky objektem globální úrovně, tedy nadřazeným jednotlivým instancím, každá instance se do něj aktivně registruje. Po úspěšné inicializaci webového serveru se tento server pokusí naslouchat na tzv. wildcard rozhraní ( 0.0.0.0) na portech HTTP (80) a HTTPS (443). V případě HTTPS si automaticky vytvoří self-signed certifikát

Jakmile je zaregistrována první instance, webový server ukončí naslouchání na obecných rozhraních a začne poslouchat na síťovém rozhraní definovaném v konfiguračních parametrech dané instance – které se může, ale nemusí, shodovat s výchozím nastavením. Každá další instance pak může naslouchat buď na stejném rozhraní, nebo přidat vlastní. Pokud je více instancí připojeno na stejném rozhraní, určuje se cílová instance na základě hostname (v případě HTTP) nebo pomocí Server Name Indication (SNI) v případě HTTPS, jak to definuje standard HTTP/1.1 a jeho rozšíření. 

Z výše uvedeného vyplývá, že webový server v systému Flexideo plně splňuje specifikace protokolu HTTP/1.1. Certifikáty používané webovým serverem se definují na úrovni konfigurace jednotlivých instancí a mohou být sdíleny více instancemi – za předpokladu, že jsou k danému certifikátu všechny tyto instance nakonfigurovány identicky. Klíčovým požadavkem je jednotné nastavení parametrů certifikátu, zejména v souvislosti s jeho vytvářením. 

Tvorba certifikátů je úkolem globálního webového serveru. Certifikáty lze vytvořit jako self-signed, nebo je získat prostřednictvím protokolu ACME. Výchozím poskytovatelem pro automatické vystavování certifikátů je Let’s Encrypt. Systém podporuje RSA certifikáty s běžnými délkami klíčů a rovněž certifikáty typu ECDSA. Pro zvýšení bezpečnosti si aplikace generuje na globální úrovni také vlastní DH (Diffie–Hellman) klíče. Tyto klíče jsou uloženy v adresáři se spustitelným souborem a jejich obnova se provádí jejich prostým odstraněním.

Každá instance při registraci do webového serveru vytváří vlastní cache, která slouží k urychlení poskytování často vyžadovaných dat. Tato cache obsahuje nejen statické soubory, ale také předkompilované FSP stránky. Chování této cache lze detailně nastavit v konfiguračním souboru instance – definovat maximální velikost jednotlivých souborů, celkovou velikost webové cache i politiku kontroly aktuálnosti souborů (např. zda porovnávat verzi v cache se souborem na disku). 

Webový server umožňuje komprimaci přenášených dat pomocí algoritmu deflate, čímž snižuje datový objem přenášený mezi klientem a serverem. 

Speciální roli hrají tzv. FSP stránky. Jedná se o serverem interpretované stránky (obdobně jako PHP nebo ASP), které mohou rozšiřovat funkcionalitu aplikace. Tyto stránky se před vlastním vykonáním zkompilují a uloží do paměti, čímž je zajištěna jejich rychlá dostupnost při opakovaném volání. FSP stránky mají příponu .fsp, jsou napsány v proprietárním jazyce (FSP) a umožňují přímou práci s daty systému Flexideo

Webový server tak plní klíčovou roli jako hlavní vstupní brána pro práci s instancemi – a to nejen v rámci klasického přístupu ke statickým a dynamickým stránkám, ale i při zprostředkování přístupu k uloženým souborům, streamování mediálního obsahu prostřednictvím integrovaného mediálního serveru, nebo při exportu rozhraní pro webové služby. Tyto služby jsou následně vykonávány prostřednictvím tzv. akcí (viz dále).