presný čas

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.2

Konfigurácia:

konfiguračný súbor C:\Apache2.2\conf\httpd.conf
kaž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 On
zapne HTTP perzistentné pripojenie


# KeepAliveTimeout On
Poč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 warn
intenzita logovania (debug, info, notice, warn, error, crit, alert, emerg)


# Include ports.conf
Pripojenie ď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/16
kontroluje ktorý klient má prístup k danej časti servru (Allow from all)


# Deny from all
ktorí 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.html
predvolený dokument ktorý sa zobrazí užívateľovi ak v jeho požiadavke nešpecifikoval presný názov dokumentu


# DirectoryIndex index.html
predvolený 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.html
errorNumber 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

Linky: