Apache
Čo to je ...
Apache HTTP Server je softwérový webový server s otvoreným kódom pre GNU/Linux, BSD, Solaris, Mac OS X, Microsoft Windows a ďalšie platformy. V súčastnosti dodáva prehliadačom väčšinu webových stránok :) .História:
Vývoj Apache začal v roku 1993 v NCSA (National Center for Supercomputing Aplications) na Illinoiskej univerzite. Pôvodné meno projektu bolo NCSA HTTPd. V nasledujúcom roku však vývojarský tím opustil hlavný programátor Rob McCool, čím došlo k spomaleniu vývoja a neskôr, v roku 1998, k úplnému zastaveniu. NCSA HTTPd však medzitým už používali správcovia webových serverov a dodávali mu vlastné úpravy – patche (patch = záplata). Hlavnú úlohu v ďalšom vývoji zohrali Brian Behlendorf a Cliff Skolnick, ktorí založili e-mailovú konferenciu a začali zber úprav a ich distribúciu koordinovať. Prvá verejná verzia s označením 0.6.2 bola vydaná v apríli 1995. Nasledovalo kompletné prepísanie kódu (Apache2 už neobsahuje nič z pôvodného NCSA HTTPd) a založenie Apache Group, ktorá je dnes základom vývojarského tímu. Od apríla 1996 bol Apache najpopulárnejší server na internete. V máji 1999 bežal na 57 % zo všetkých serverov a v októbri 2011 jeho používanosť dosiahla 64,67 % (výsledky merania Netcraft).Inštalácia:
http://httpd.apache.org/ .... Download - Stable Release - Win32 Binary including OpenSSL.... nainštalovať do C:\Apache2.2Konfigurácia:
konfiguračný súbor C:\Apache2.2\conf\httpd.confkaždý riadok v konfiguračnom súbore je príkaz pre apache server(alebo tiež direktíva).
# príkaz .... "zakomentovaný" príkaz ktorý si apache nevšíma
# ServerRoot "Cesta k priečinku"koreň adresárového stromu pre konfiguračné súbory, logy alebo relatívna cesta pre Include a LoadModule direktívy
# KeepAlive Onzapne HTTP perzistentné pripojenie
# KeepAliveTimeout OnPočet sekúnd ktoré bude Apache čakať na ďalšie requesty pred uzatvorením spojenia
# AccessFileName "nazov suboru"apache v tomto súbore hľadá dodatočné nastavenia (default je .htaccess)
# ErrorLog "Cesta k súboru"cesta k logovaciemu súboru
# LogLevel warnintenzita logovania (debug, info, notice, warn, error, crit, alert, emerg)
# Include ports.confPripojenie ďalších konfiguračných súborov
# <Files ~ "^\..ht"> # Order allow,deny # Deny from all # Satisfy all # </Files>obmedzenie prístupu k niektorým súborom (tu je to pre .htaccess alebo .htpasswd)
# Allow from 10.1.2.3 10.1.0.0/16kontroluje ktorý klient má prístup k danej časti servru (Allow from all)
# Deny from allktorí klienti nemajú prístup
# <Directory /usr/local/httpd/htdocs> # Options Indexes FollowSymLinks # </Directory>využitie ak chceme skupinu direktív aplikovať na spomínaný priečinok, jeho podpriečinky a súbory
# DirectoryIndex index.htmlpredvolený dokument ktorý sa zobrazí užívateľovi ak v jeho požiadavke nešpecifikoval presný názov dokumentu
# DirectoryIndex index.htmlpredvolený dokument ktorý sa zobrazí užívateľovi ak v jeho požiadavke nešpecifikoval presný názov dokumentu
Virtual Hosts:
definícia virtual hostu pre doménu example3.com# <VirtualHost *:80> # DocumentRoot "C:/Apache2.2/virtual/example3.com" # ServerName example3.com # <Directory "C:/Apache2.2/virtual/example3.com"> # AllowOverride All # Order deny,allow # Deny from all # Allow from 127.0.0.0/24 # </Directory> # ErrorLog "logs/example3.com-error.log" # CustomLog "logs/example3.com-access.log" common # </VirtualHost>Tu je vytvorený virtualhost ktorý počúva na porte 80 na všetkých IP adresách v danom PC. Povolený prístup je naň len prístup zo siete 127.0.0.0/24. Má definovaný error log a prístupový log relatívny k ServerRoot ceste.
.htaccess:
definovanie vlastného error dokumentu# ErrorDocument errorNumber /file.htmlerrorNumber z množiny {400, 401, 403, 405, 408, 500, 501, 502, 503, ... }
SSL:
- generovanie súkromného kľúča sps.pem (Common Name: example2.com)
openssl req -config ../conf/openssl.cnf -new -out sps.com.csr -keyout sps.pem
- vygenerovanie nezaheslovaného kľúča pre Apache:
openssl rsa -in sps.pem -out sps.key
výsledný kľúč je v podstate to isté ako PEM súbor ale nie je chránený heslom - vytvorenie X.509 certifikátu
openssl x509 -in sps.com.csr -out sps.crt -req -signkey sps.key -days 365
- editácia extra/httpd-ssl.conf
SSLCertificateFile "cesta k *.crt suboru"
SSLCertificateKeyFile "cesta k *.key suboru"
http >> https s virtualhostom:
#<VirtualHost *:80> # .... # SSLEngine on # SSLCertificateFile /etc/apache2/ssl/apache.pem # <IfModule mod_rewrite.c> # <IfModule mod_ssl.c> # RewriteEngine on # RewriteCond %{HTTPS} off # RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} # </IfModule> # </IfModule> # .... #</VirtualHost>
úlohy:
- pre virtual host example1.com nastavte default dokument ktorý sa zobrazí na index.htm
- pre virtual host example2.com nastavte ssl certifikát
- pre virtual host example3.com nastavte na odpoveď 404 vlastný html dokument