komputerowa Apache serwer WWW (część 2) Marcin Bieńkowski Instytut Informatyki Uniwersytet Wrocławski komputerowa () Apache serwer WWW (część 2) 1 / 17
W poprzednim odcinku poznaliśmy: Prawa i opcje katalogów Aliasy katalogów i przekierowania Pliki dziennika Proste wykorzystanie CGI komputerowa () Apache serwer WWW (część 2) 2 / 17
W poprzednim odcinku, cd.: Każdy z komputerów może mieć wiele nazw i adresów IP localhost 127.0.0.1 komputer.strefa4.pracownia alias_jakis.strefa4.pracownia 192.168.0.4... W poprzednim odcinku wszystkie nazwy http://nazwa_domeny/ wskazywały na tę sama stronę główna. Dzisiaj pokażemy, jak to zmienić. komputerowa () Apache serwer WWW (część 2) 3 / 17
W dzisiejszym odcinku wirtualne domeny WWW regulowanie dostępu plikami.htaccess autoryzacja dostępu do zasobów za pomoca hasła prywatne strony użytkowników komputerowa () Apache serwer WWW (część 2) 4 / 17
Serwery wirtualne Serwery wirtualne WWW Dzielimy je na IP-based: dla każdej domeny wirtualnej potrzebujemy osobnego adresu IP. Równoważne uruchomieniu osobnego serwera WWW dla każdego adresu i nasłuchiwanie tylko na danym interfejsie: Listen 11.22.33.44 80 Stosunkowo rzadko stosowane Name-based: wystarczy, że DNS potrafi przekształcić nazwę domeny (wpis typu A albo CNAME) na adres IP, a pod tym adresem IP jest odpowiednio skonfigurowany serwer WWW. komputerowa () Apache serwer WWW (część 2) 5 / 17
Serwery wirtualne Serwery wirtualne WWW Dzielimy je na IP-based: dla każdej domeny wirtualnej potrzebujemy osobnego adresu IP. Równoważne uruchomieniu osobnego serwera WWW dla każdego adresu i nasłuchiwanie tylko na danym interfejsie: Listen 11.22.33.44 80 Stosunkowo rzadko stosowane Name-based: wystarczy, że DNS potrafi przekształcić nazwę domeny (wpis typu A albo CNAME) na adres IP, a pod tym adresem IP jest odpowiednio skonfigurowany serwer WWW. komputerowa () Apache serwer WWW (część 2) 5 / 17
Konfiguracja Serwery wirtualne Wpis NameVirtualHost określa, na jakich interfejsach serwer WWW przyjmuje połaczenia dotyczace wirtualnych domen. NameVirtualHost * NameVirtualHost *:80 NameVirtualHost 11.22.33.44:80 komputerowa () Apache serwer WWW (część 2) 6 / 17
Serwery wirtualne Dla każdej wirtualnej domeny piszemy: <VirtualHost adres_ip>... </VirtualHost> W Debianie wpis dla każdej domeny w osobnym pliku w /etc/apache2/sites-available (+ link w /etc/apache2/sites-enabled). komputerowa () Apache serwer WWW (część 2) 7 / 17
Serwery wirtualne Konfiguracja wirtualnych domen, cd. Co powinno znaleźć się w opisie wirtualnej domeny? Minimum: <VirtualHost *> ServerName www.domena.pl DocumentRoot /var/www/katalog_domeny </VirtualHost> Uwaga: Powinien też istnieć wpis dla domyślnej domeny (jako pierwszy). komputerowa () Apache serwer WWW (część 2) 8 / 17
Przykład Serwery wirtualne # Opcje globalne NameVirtualHost * <VirtualHost *> # domyślna domena wirtualna ServerName komputer.domena.pl DocumentRoot /var/www/ # Opcje lokalne </VirtualHost> <VirtualHost *> ServerName wirtualna.domena.pl ServerAlias www.wirtualna.domena.pl DocumentRoot /var/www/wirtualna # Opcje lokalne </VirtualHost> komputerowa () Apache serwer WWW (część 2) 9 / 17
Zasięgi opcji Serwery wirtualne Opcje globalne dotycza wszystkich wirtualnych domen, chyba że zostana przysłonięte przez opcje lokalne. Opcje lokalne dotycza tylko tej domeny, w której definicji występuja. W szczególności: Poszczególne domeny moga mieć osobne pliki dziennika. Globalnie zdefiniowany ScriptAlias /cgi-bin/ /var/www/cgi-bin/ lub inny Alias powoduje działanie adresu http://dowolna_domena/cgi-bin/. Dostęp do tego samego katalogu może być możliwy w przypadku jednych domen, a zabroniony w przypadku innych. komputerowa () Apache serwer WWW (część 2) 10 / 17
Pliki.htaccess Pliki.htaccess Dla konkretnego katalogu /sciezka/katalog można określić prawa i opcje do niego wpisami <Directory> w plikach z globalna konfiguracja (tj. w /etc/apache2/...) lub określić je w pliku /sciezka/katalog/.htaccess Warunek wstępny: serwer uwzględni plik.htaccess na podstawie opcji AllowOverride zawartej w odpowiednim bloku <Directory>. komputerowa () Apache serwer WWW (część 2) 11 / 17
Pliki.htaccess Hierarchiczne ustawianie opcji - przykład Przykład: <Directory /> Options None AllowOverride None </Directory> <Directory /var/www/> Options Indexes </Directory> <Directory /var/www/aaa/> Options Includes FollowSymLinks AllowOverride Options </Directory> W katalogu / oraz /var/www/aaa znajduja się pliki.htaccess o treści: Options +ExecCGI komputerowa () Apache serwer WWW (część 2) 12 / 17
Pliki.htaccess Opcje AllowOverride AuthConfig - można zmieniać opcje dotyczace autoryzacji dostępu do katalogu Limit - kontrola dostępu na podstawie IP (Deny, Allow, Order) Options - możliwość używania Options All - wszystkie z powyższych None - żadne z powyższych komputerowa () Apache serwer WWW (część 2) 13 / 17
Autoryzacja na postawie hasła Kontrola dostępu na podstawie hasła Poprzednio dowiedzieliśmy się jak sterować kontrola dostępu na podstawie adresu IP klienta (opcje Order, Allow, Deny). Można to też zrobić na podstawie hasła: Przykład AuthType Basic AuthName "Tajne i poufne" AuthUserFile plik_z_haslami Require user mbi adam krzys # albo Digest # albo "valid-user" komputerowa () Apache serwer WWW (część 2) 14 / 17
Autoryzacja na postawie hasła Pliki z hasłami Sa w formacie user:hasło. Hasło jest zaszyfrowane crypt-em (uwierzytelnianie Basic) albo MD5 (uwierzytelnianie Digest) Hasło można zmienić poleceniem htpasswd2 komputerowa () Apache serwer WWW (część 2) 15 / 17
Katalogi użytkowników Katalogi użytkowników Często chcemy umożliwić użytkownikom posiadanie własnych stron WWW dostępnych przez adres http://domena/ user. Należy w tym celu właczyć odpowiedni moduł Apache: a2enmod userdir Przykładowa konfiguracja <IfModule mod_userdir.c> UserDir public_html UserDir disabled root <Directory /home/*/public_html> AllowOverride All Options Indexes </Directory> </IfModule> komputerowa () Apache serwer WWW (część 2) 16 / 17
Literatura Literatura Ben Laurie, Peter Laurie Apache: The Definitive Guide O Reilly & Associates The Apache Software Foundation Apache HTTP Server Version 2.0 Documentation http://httpd.apache.org/docs/2.0/ komputerowa () Apache serwer WWW (część 2) 17 / 17