Specifika Windows serveru

Virtuální servery zřízené s operačním systémem Windows mají oproti Linux serverů rozdílné vlastnosti a služby, které vyplývají z dané platformy. Virtuální server lze objednat v rámci balíčků Komplet, Firma a Expert.

Níže naleznete specifické vlastnosti a služby Windows řešení.

 

 


 

Pojmenování souborů

Jméno souboru nebo adresáře nesmí přesáhnou 256 znaků (včetně přípony) a nesmí obsahovat následující znaky: ? \ * " < > | /.  Operační systém Windows nerozlišuje velká a malé písmena v názvech souborů a nezáleží tedy například jestli odkaz v HTML na nějaký soubor je zapsán malými písmeny a skutečné jméno souboru na souborovém systému je písmeny velkými.


Nastavení práv souborů

Hostingy umístěné na serverech s operačním systémem Windows mají pouze dvě možnosti nastavení přístupových práv. Změnu lze provést v nastavení virtuálního serveru v Zákaznickém centru (Servery a hosting / doména / Nastavení serveru / Nastavení práv). Prostřednictvím FTP práva souborů měnit nelze.

  1. Vysoká bezpečnost: s tímto nastavením jsou servery zřizovány. Skriptům je povolen zápis pouze do adresářů /Upload a /WWWRoot/Dread
  2. Standardní bezpečnost: obdoba Linuxového nastavení 777 - plná práva zápisu všem do všech složek a souborů v adresáři /WWWRoot/ a níže.
Upozornění: Pokud Vaše aplikace nevyžaduje plná práva souborů, nenastavujte je. Vyšším oprávněním souborů se zvyšuje riziko zneužití/napadení Vaší aplikace! 

Podrobný postup:

  1. Přihlaste se do Zákaznického centra.
  2. Zvolte hosting, na kterém si přejete upravit práva souborů (Servery a hosting / doména / Nastavení serveru).
  3. V Detailu serveru klikněte v řádku Nastavení práv na Nastavení.
  4. Přepněte práva dle Vaší potřeby kliknutím na zvolené oprávnění. 

Struktura adresářů

Při přihlášení na FTP Windows serveru můžete najít následujících pět adresářů - 

  • WWWRoot - rootová složka pro nahrání Vaší aplikace. Soubory zde nahrané se zobrazí na nasměrované doméně. Podadresář DRead je určen pro umístění souborů, které není dovoleno anonymně číst nebo stahovat pomocí http. Nejčastěji jde o databázové soubory typu access atp.
  • Store - Zde je možno umístit soubory, ke kterým je možný pouze autorizovaný přístup pomocí FTP.
  • Upload - V tomto adresáři může anonymní internetový uživatel pomocí scriptů zapisovat i mazat soubory. Adresář a soubory v něm jsou anonymně v prohlížeči přístupné na adrese http://www.vasedomena.cz/Upload. Typické využití tohoto adresáře je jako cíl uploadu obrázků na virtuální server.
  • ErrMsg - Zde jsou umístěny html soubory, které server posílá v případě chyby. Změnou souborů je možno definovat uživatelské chyby. Např. modifikací souboru 404.htm
  • Logs - V tomto adresáři jsou umístěny HTTP logy od virtuálního serveru. Logy starší čtyřiceti dnů jsou automaticky mazány.

Provoz ASP.NET

Pokud vytváříte kód svojí aplikace pomocí "Visual Studio .net", tak při založení nového projektu, automaticky vzniká i aplikace na podadresáři. To je pochopitelné vzhledem k tomu, že v rootu webu mohou být specifická nastavení pro jiný projekt, která by mohla při ladění scriptů působit problémy. Naše hostingové stroje ovšem nejsou určeny pro ladění kódu a tudíž není provoz více aplikací na jednom virtuálním serveru potřebný.

Pro provoz tedy vyplývá následující:

  1. Soubory z adresáře bin musí být umístěny v tomto adresáři, který je v rootu WEBu (ve WWWRoot). Aplikace hledá tyto soubory vždy jen od rootu webu, kde je aplikace nastavena a pokud je adresář bin ještě v dalším podadresáři, nejsou soubory nalezeny a dojde k chybovému hlášení.
  2. Ve web.config, který je umístěn jinde než v rootu WEBu (v podadresáři), nesmí být uvedeny parametry pro nastavení aplikace. Jednak nemají žádný význam, ale hlavně způsobují chybové hlášení při pokusu spustit script z tohoto podadresáře.
  3. Soubor global.aspx umístěný jinde než v rootu webu není zpracováván.

Výše uvedené skutečnosti jsou nastavovány při založení projektu na podadresáři pomocí "Visual Studio .net" automaticky a je tedy nutno na ně dávat pozor. Soubory global.aspx a web.config vznikají vždy a rovněž nějaké soubory jsou vždy vytvořeny i v adresáři bin. Je ale nutno konstatovat, že uvedené soubory (nebo jejich obsah) nejsou vždy nezbytné pro běh vaší aplikace. Platí, že jakýkoli zbytečný kód navíc zpomaluje zkompilování (spuštění) vaší aplikace na WEB serveru, jakož i znamená vyšší nároky na paměť. Proto Vám doporučujeme prostudovat, zda uvedené soubory je skutečně nutné na virtuální server kopírovat.


Aplikační pool

Aplikační pool u Windows serverů zajišťuje rozdělení aplikací na serveru sdíleného hostingu. Zároveň umožňuje nastavení úrovně izolace mezi jednotlivými webovými aplikacemi. Toto je opatření, které primárně zabraňuje přetěžování serveru. Přetěžování může vznikat jednak velkým provozem na virtuálním serveru, častěji však chybnými (špatně sestavenými) scripty a dotazy na databáze. 

  • Recyklování paměti

    Application pool který je samostatný pro každý virtuální server, je sledován z hlediska množství paměti kterou má zaalokovánu. Sledují se dvě hodnoty, Virtual Memory (Wokring Set) a Used Memory (Private). Při překročení nastavených hodnot je spuštěn nový proces, který přebere běh aplikace virtuálního serveru. Původní (starý) proces je pak ukončen. V praxi se věc projevuje zrušením sessions u ASP aplikací a zneplatněním viewstate u ASPX aplikací.
  • Sledování spotřeby procesorového času

    Aplikační pool, který je samostatný pro každý virtuální server, je sledován z hlediska času procesoru spotřebovaného aplikacemi (scripty) které jsou v rámci virtuálního serveru spouštěny. Nasčítaná hodnota je periodicky porovnávána s nastaveným limitem, a pokud je vyšší, dojde k vypnutí application poolu. Omezení výkonu není nijak škálováno a web je rovnou vypnut. Rovněž se nikam nezaznamenávají hodnoty o spotřebovaném procesorovém času. Navenek se virtuání server s překročenými procesorovými limity projevuje hlášením "Service Unavailable" a to i v případě požadavku na statický obsah.
Důležité: Aplikační pooly jsou kontrolovány každou půlhodinu a vypnuté pooly jsou kažých 30 min automaticky startovány.

Soubor web.config

Soubor web.config slouží k nastavení vašeho virtuálního serveru. Po vytvoření nového virtuálního serveru je vkládán web.config s následujícím výchozím obsahem -

<!--l version="1.0" encoding="utf-8-->
< configuration />

<system.web />
<compilation tempdirectory="P:\%username_without_suffix%\" />
</compilation />

<customerrors mode="on" />
</customerrors />

</system.web />

<configuration />

Položka "tempDirectory" v sekci "compilation" je nastavena a určena pro každý virtuální server zvlášť. Pokud neexistuje, nebo je vyplněna chybně, dochází buď zcela nebo částečně k nefunkčnosti hlavně zkompilovaných knihoven *.dll, objevuje se hlášení "Access is denied". Takése může stát, že ostatní uživatelé virtuálních serverů běžících na stejném stroji mohou číst kód Vašeho virtuálního serveru a tak eventuelně zjistit přístupy k databázím, či do neveřejných částí Vašeho WEBu. Proto nedoporučujeme "tempDirectory" měnit.
Položka "mode" v sekci "customErrors" určuje, zda se budou zobrazovat chybová hlášení při zpracování *.aspx či *.dll. Pokud chcete zobrazovat podrobná chybová hlášení, změňte ji na "Off".