Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

Správa webserveru Přednáška 3

Podobné prezentace


Prezentace na téma: "Správa webserveru Přednáška 3"— Transkript prezentace:

1 Správa webserveru Přednáška 3
Apache

2 Obsah Historie Architektura Instalace Httpd.conf Moduly serveru Apache
Windows Unix Httpd.conf Globální prostředí Konfigurace serveru Virtuální hostitelé Moduly serveru Apache SSI, CGI, PHP, ISAPI Literatura

3 Historie Vývoj začal v roce 1993 v NCSA (National Center for Supercomputing Aplications). Původní jméno projektu bylo NCSA HTTPd. V roce 1998 zastaven vývoj webserveru NCSA HTTPd. Založena ová konference pro shromažďování záplat původního webserveru. V roce 1995 vydána první veřejná verze Založení Apache Group (základní vývojářský tým). Od 1996 je Apache nejpopulárnější webserver na internetu. V současné době je používán na 58% webových serverů.

4 Zastoupení web serveru na trhu

5 Vlastnosti Podpora protokolu HTTP 1.1
Konfigurace prostřednictvím textových souborů Podpora rozhraní CGI (Common Gateway Interface) Podpora rozhraní FastCGI Podpora virtuálních hostitelských počítačů Podpora autentizace v protokolu HTTP Integrovaný jazyk Pearl Podpora skriptování v jazyce PHP Podpora javovských servletů Podpora mechanizmu SSL (Secured Socket Layer)

6 Architektura Apache 1.x Unix: nevláknový model
Hlavní proces spustí sadu dětských procesů, které obsluhují požadavky. Windows: více vláknový model Hlavní proces spustí jeden dětský proces, který obsluhuje požadavky pomocí vlákna.

7 Architektura Apache 2.x Moduly souběžného zpracování (multiprocessing module, MPM) prefork (odpovídá modelu apache 1.3) Hlavní proces spustí sadu dětských procesů, které obsluhují požadavky. threaded Hlavní proces spustí sadu dětských procesů, které obsluhují požadavky pomocí určitého počtu vláken (procesy jsou spuštěny pod stejným ID). perchild Hlavní proces spustí sadu dětských procesů, které obsluhují požadavky pomocí určitého počtu vláken (procesy mohou mít různé ID). mpm_winnt Hlavní proces spustí jeden dětský proces, který obsluhuje požadavky pomocí vláken.

8 Architektura

9 Instalace – UNIX Stáhnout zdrojové kódy: Rozbalit archív Např.: tar zxvf httpd tar.gz Konfigurace překladu Pomoci skriptu configure (vytvoří pomocné soubory Makefile) Např.: ./configure --prefix=/usr/local/apache2 --enable–all Vypsání všech parametrů konfiguračního skriptu (./configure -- help) Překlad zdrojového kódu (kompilace) Pomoci utility make (vytvoření programu) Instalace přeložených souborů Pomocí utility make s parametrem install (bude nainstalován do cílového adresáře, který byl specifikován prefixem) Start a zastavení Apache Start – apachectl start Ukončení – apachectl stop

10 Instalace – Windows Stažení binární verze: (lze stáhnout i zdrojové kódy) Spustit instalátor a následovat instrukce Během instalace si program vyžádá zadání: Jméno domény (např.:localhost) Jména počítače (např.:mujcomp) administrátora Apache (uvedené informace se dají později změnit) Spuštění a zastavení Apache Prostřednictvím nabídky start / programy/apache/control apache server/ start start / programy/apache/control apache server/ stop

11 Instalace – Windows

12 Konfigurace Prostřednictvím textových souborů uložených adresáři conf/
http.conf (hlavní konfigurační soubor) Mime.type (svázání typu přípon s mime typem) Magic (odhadnutí MIME typu pomocí pár úvodních bytů souboru) Ve starší verzi Apache ještě Srm.conf (správa adresářů a dokumentů, které jsou vystavovány na serveru) Access.conf (konfigurace přístupových práv) Lokální konfigurační soubor .htaccess

13 Předkonfigurované distribuce
Výhody Vzhledem k obtížnosti administrace apache, mysql, .. Jsou tyto balíky vhodné pro developery webových aplikací Nevýhody Ve většině případů jsou určeny pouze k testovacím účelům a nelze je použít pro nasazení v produkčním prostředí Například: XAMPP - PHP Triad - PHP Home -

14 XAMPP Apache MySQL PHP + PEAR Perl OpenSSL phpMyAdmin Webalizer
JpGraph FileZilla FTP Server Mcrypt eAccelerator SQLite WEB-DAV Mercury Mail Transport System

15 Nástroje Grafické nástroje pro administraci
Comanche Mohawk Nástroje pro správu logovacích souborů AWStarts Weblizer

16 Comanche, Mohawk

17 AWStats, Weblizer

18 Formátovací specifikace
Ukončení řádky – CLRF(carriage return plus a line feed) -\r\n Formátování hlavičky – Header-Name: value Formát data – Tue, 21 May :34:56 GMT Kódování URL – viz dále

19 httpd.conf Globální prostředí Konfigurace serveru Virtuální servery
Určení kořenového adresáře, nastavení spojení s klientem nastavení správy procesů, Nastavení prostředí TCP/IP, aktivace rozšiřujících modulů. Konfigurace serveru Nastavení jména serveru, vlastností adresářů, externího konfiguračního souboru, virtuálních adresářů, přesměrování, znakových sad, SSI, proxy, …. Virtuální servery Konfigurace virtuálních serverů

20 Globální prostředí ServerRoot - hlavní adresář webového serveru
Moduly souběžného zpracování - modul MPM prefork – předběžné vytváření, threaded – vláknový modul (procesy mají stejné ID), perchild – vláknový modul (procesy mohou mít různé ID), mpm_winnt_module – vláknový modul ServerRoot “C:/apache” <IfModule mpm_winnt.c> # počet vláken, které může vytvořit jeden proces ThreadsPerChild 250 # počet požadavků, které smí dceřiný proces obsloužit MaxRequestsPerChild 0 </IfModule>

21 Globální prostředí Listen - specifikuje IP adresu a port na kterém web server komunikuje (lze zadat i více adres a portů) LoadModule - dynamické objekty, které jsou zaváděny až při spuštění webového serveru (nejsou součástí zkompilovaného webserveru Listen 80 LoadModule actions_module modules/mod_actions.so

22 Konfigurace serveru ServerAdmin - na admina, který se zobrazuje na serverem generovaných stránek ServerName - slouží k nastavení hostitelského jména serveru DocumentRoot - cesta k adresáři nejvyšší úrovně Directory – slouží k nastavení chování adresáře ServerAdmin ServerName localhost:80 DocumentRoot "C:/apache/htdocs" <Directory adresář> </Directory>

23 Konfigurace serveru IfModule – slouží k ošetření aktivnosti modulu
IfDefine – umožňuje vytvářet podmínečné konfigurace <IfModule jmeno_modulu> </IfModule> <IfDefine něco> </IfDefine>

24 Konfigurace serveru Include – umožňuje zahrnout do konfigurace externí soubor AccessFileName – specifikuje jméno souboru řídícího přístup do adresáře DefaultType – nastavení implicitního typu obsahu AddDefaultCharset – definuje standardní znakovou sadu pro hlavičku Content-Type Include conf/extra/httpd-default.conf AccessFileName .htaccess DefaultType plain/text AddDefaultCharset utf-8

25 Konfigurace serveru ContentDigest – generuje hlavičku s kontrolním součtem celého obsahu těla dokumentu pomocí MD5 Options – definuje, které rysy serveru jsou v daném adresáři k dispozici Port – přiřazuje hostitelské číslo portu od 0 do ServerSignature – zápatí pro stránky generované serverem ContentDigest On Options Indexes Includes MultiViews ExecCGI … Port 80 ServerSignature On

26 Konfigurace serveru AddModule - zavedení předkompilovaného modulu
ClearModuleList – slouží k vymazání dynamického načítání modulů AddModule ClearModuleList

27 Konfigurace serveru ErrorLog - ukazuje na protokolový soubor vyhrazený pro zaznamenávání chyb CustomLog - nastavení cesty k logovacímu souboru LogLevel - nastavení úrovně protokolování ErrorDocument – vygenerování standardní hlášení s chybovým kódem ErrorLog logs/error.log CustomLog logs/access.log common LogLevel warn ErrorDocument 500 “Serveru se nechce pracovat.”

28 Virtuální hostitelé NameVirtualHost – slouží k používání virtuálních hostitelů podle jména ServerAlias – umožňuje definovat alias pro primární hostitelské jméno ServerPath – nastavuje cestu URL hostitele, používí se pro podporu prohlížečů, které nevyhovují protokolu HTTP 1.1 <VirtualHost> -kontejnerová direktiva specifikující konfiguraci virtuálního hostitele NameVirtualHost *:80 <VirtualHost *:80> ServerName mojedomena.cz ServerAlias ServerPath /websites </VirtualHost>

29 Moduly Modulů pro webový server Apache je velké množství, ale pouze některé jsou součástí standardní distribuce serveru Apache. Moduly pro konfigurování typu obsahu mod_mime, mod_mime_magic, mod_negotiation Moduly pro tvorbu adresářových výpisů mod_dir, mod_autoindex Moduly pro mapování URL mod_userdir, mod_rewrite, mod_alias, mod_spelind,… Informační a protokolové moduly serveru mod_log_config, mod_status, mod_info, mod_usertrack

30 Moduly pro konfigurování typu obsahu
mod_mime – umožňuje serveru určovat typ MIME na základě rozšíření souboru AddCharset, AddEncoding, AddHandler, AddLanguage, AddType, DefaultLanguage, ForceType, SetHandler, RemoveHandler, TypesConfig mod_mime_magic – dovoluje serveru určovat typ MIME pomocí magických čísel (bajtového vzoru) MimeMagicFile mod_negotiation – umožňuje dojednávat typ odesílaného obsahu CacheNegotiatedDocs, LanguagePriority

31 Moduly pro tvorbu adresářových výpisů
mod_dir – základní obsah adresáře DirectoryIndex mod_autoindex – automatický výpis adresáře Addalt, AddAltByEncoding, AddAltByType, AddDescription, AddIcon, AddIconByEncoding, AddIconByType, DefaultIcon, FancyIndexing, HeaderName, IndexIgnore, IndexOptions, IndexOrderDefault, ReadmeName

32 Moduly pro mapování URL
mod_userdir – zpřístupňuje osobní webové stránky Userdir mod_rewrite – vytváří přepisovací pravidla pro lokátory URL RewriteEngine,RewriteOptions, RewriteRule, RewriteCond, RewriteMap, RewriteBase,RewriteLog, RewriteLogLevel, RewriteLock mod_alias – mapuje části hostitelského souborového systému do dokumentového stromu Alias, AliasMatch, Redirect, RedirectMatch, RedirectTemp, RedirectPermanent, ScriptAlias, ScriptAliasMatch

33 Moduly pro mapování URL
mod_spelind – automatická korekce menších typografických chyb v lokátorech URL CheckSpelling mod_vhost_alias – podpora dynamické konfigurace viruálních hostitelů VirtualDocumentRoot, VirtualDocumentRootIP, VirtualScriptAlias, VirtualScriptAliasIP

34 Informační a protokolové moduly
mod_log_config –vytváří konfigurovatelný záznam o přístupech klientů na server TransferLog, Logformat, CustomLog, CookieLog mod_status – zobrazuje stavové informace SetHandler sever-status mod_info – zobrazuje informace o konfiguraci serveru SetHandler server-info, AddModuleInfo mod_usertrack – umožňuje sledovat uživatele pomocí cookies protokolu HTTP CookeiExpires, CookieTracking

35 SSI (Server Side Includes)
Direktivy SSI provádějí např.: Vložit do dokumentu obsah jiného dokumentu Vložit do dokumentu konkrétní údaj Spustit zadaný program a jeho výstup vložit do dokumentu Direktivy SSI #set, #printenv, #include, # fsize, #flastmod, #echo, #exec, #config, … Provoz SSI na Apache mod_include – umožňuje používat serverem vkládané vsuvky Options Includes AddType text/plain .shtml AddHandler server-parsed .shtml

36 CGI (Common Gateway Interface)
CGI skript je externí program, který je spuštěn na základě požadavku. mod_cgi, mod_cgid (pro MPM- Vytváří proces typu démon, který vytváří procesy pro CGI) Provozovat CGI na Apache: Nastavením adresáře s CGI-skripty Vlastní práva k adresáři se nastavují v direktivě <Directory> Specifikace typu MIME Ve vlastnosti adresáře musíme povolit Options ExexcCGI ScriptAlias /cgi-bin/ “C:/apache/cgi-bin/” AddType application/x-httpd-cgi .cgi AddHandler cgi-script .cgi

37 PHP: Hypertext Preprocessor
Provozovat PHP na Apache lze prostřednictvím: CGI Modul Hlavním konfiguračním souborem PHP je soubor php.ini ScriptAlias /php/ “C:/apache/php” AddType applocation/x-httpd-php.php .php Action application/x-httpd-php “/php/php-cgi.exe” LoadModule php_module “C:/apache/php/php5apache2.dll” AddType applocation/x-httpd-php.php PHPIniDir “C:/apache/php”

38 ISAPI ISAPI (Internet Server Application Program Interface) je množina funkcí ve Windows, která umožňuje vytvářet Web serverové aplikace, které budou rychlejší než Common Gateway Interface (CGI) aplikace. Nevýhoda CGI aplikace je, že při každém jejím volání se spustí v samostatném procesu v jeho vlastním adresovacím prostoru, což je nevýhodné zvláště při spuštění mnoha uživateli. Provozovat ISAPI na Apache: mod_isap – dovoluje zavádět a spouštět aplikace vycházející z rozhraní ISPI (internetové serverové aplikační programové rozhraní) AddHandler isapi-isa .dll

39 Zdroje Literatura Odkazy
Apache Server 2, Kompletní příručka administrátora, Mohammed J. Kabir, Computer press Apache, Příručka správce WWW serveru, Vlastimil Pošmura, Computer Press Open Source – vývoj webových aplikací (Linux, Apache, MySQL, PHP a Perl), James Lee, Brent Ware, Computer press Linux – administarce serveru Apache, Charles Aulds, Grada Linux, Apache, MySQL a PHP,Eric Rosebrock, Eric Filson, Grada Odkazy Apache – PHP –


Stáhnout ppt "Správa webserveru Přednáška 3"

Podobné prezentace


Reklamy Google