Zarządzanie systemami informatycznymi Zarządzanie serwerem httpd: Apache
Serwer httpd Apache - zalety Apache - otwarty serwer HTTP dostępny dla wielu systemów operacyjnych (m.in. UNIX, GNU/Linux, BSD, Mac OS X, Microsoft Windows) Przenośność działa w różnych systemach operacyjnych Elastyczność ma modularną, rozszerzalną architekturę i można go konfigurować na wiele różnych sposobów. Open source - można go pobierać i używać bezpłatnie; dostępność kodu źródłowego pozwala budować własne wersje serwera; można pobrać ze strony http://www.apache.org Dostępne wersje serwera Apache 1.3, 2.0, 2.2, 2.3, 2.4
Serwer httpd Apache Instalacja w systemach Linux i Windows Struktura pliku konfiguracyjnego Kontrola dostępu do serwera Apache Hosting wirtualny Pliki dziennika Wydajność i skalowalność serwera
Serwer Apache i PHP w systemie Linux Instalacja serwerów i interpretera php : sudo apt-get install apache2 php5 mysql-server Instalacja modułu Apache do komunikacji z bazą danych MySQL: sudo apt-get install libapache2-mod-auth-mysql Instalacja modułu do PHP umożliwiającego komunikację z MySQL: sudo apt-get install php5-mysql Restart serwera httpd: sudo /etc/init.d/apache2 restart
Serwer Apache w systemie Windows Program instalacyjny Apache na stronie http://httpd.apache.org/download.cgi http://windows.php.net/download/ Rozpakować archiwa do wybranego katalogu i w terminalu katalogu bin dla apache2 uruchomić polecenie httpd.exe -k install Plik konfiguracyjny httpd.conf: Ustawić dyrektywę DocumentRoot C:\www W pliku httpd.conf ustawić dyrektywę: DirectoryIndex index.php index.html index.html.var Dopisać wpis lub usunąć # komentarza: LoadModule php5_module c:\php\php5apache2.dll AddType application/x-httpd-php.php.php3 Uruchomienie modułu współpracy PHP z bazą danych MySQL Skopiować plik cp C:\usr\php\php-ini.dist C:\Windows\php.ini W pilku php.ini usunąć średniki z wpisów ;extension=php_mysql.dll ;extension=php_mysqli.dll Zmienić extension_dir = c:\php\ext Zrestartować serwer Apache httpd.exe -k restart
Kontrola nasłuchu Apache
Plik konfiguracyjny Apache System Plik Suse, Mandriva, Fedora Ubuntu, Debian Kompilacja /etc/httpd/httpd.conf /etc/httpd/httpd2.conf /etc/apache2/sites-available/default /etc/apche2/apache2.conf /etc/apche2/httpd.conf /etc/local/conf Windows C:\Apache2\conf\httpd.conf
Plik konfiguracyjny Apache
Kontenery dyrektyw Kontenery dyrektyw (sekcje) ograniczają zasięg, na który wpływają dyrektywy. Jeśli dyrektywy nie znajdą się w kontenerze, mają zasięg serwera <Directory /usr/local/apache/htdocs >... </Directory> <Location /downolads/*.html >... </Location>
Domyślne kontenery dyrektyw <VirtualHost> - określa wirtualny serwer <Directory> oraz <DirectoryMatch> - ograniczają zasięg dyrektyw do określonego katalogu DirctoryMatch przyjmuje argumenty w postaci wyrażeń regularnych <Location> oraz <LocationMatch> - ograniczają zasięg dyrektyw do określonych adresów URL albo wzorców adresów <Files> oraz <FilesMatch> - ograniczają zasięg dyrektyw do określonych nazw plików lub wzorców nazw <IFDefine> dyrektywy w tym kontenerze zostaną przetworzone jeżeli zostanie włączona dana opcja np. <IfDefine SSL> LoadModule ssl_module modules/mod_ssl.so </IfDefine>
Dyrektywa Alias Alias /doc/ /usr/share/doc/ Pozawala odwzorować pliki i katalogi dyskowe na adresy URL, np. powyższa dyrektywa sprawi, że po wpisaniu adresu http://localhost/doc/ pojawi się zawartość katalogu doc Alias Match pozwala dodatkowo stosować w adresach wyrażenia regularne np. Alias Match ^/(docs help) /usr/apache/www/manual
Treść pliku konfiguracyjnego Nazwa serwera ServerName webmaster@localhost Katalog z publikowanymi stronami DocumentRoot "C:\www" #Windows DocumentRoot /var/www #Linux Moduły serwera: Informacja o modułach apache w Linux (apache2.conf): # Include module configuration: Include /etc/apache2/mods-enabled/*.load Include /etc/apache2/mods-enabled/*.conf Przykladowy moduł autoryzacji w Windows(httpd.conf): LoadModule auth_module modules/mod_auth.so #LoadModule auth_anon_module modules/mod_auth_anon.so
Udostępnianie witryn DocumentRoot Opcja włączenie/wyłączenie podążania za linkami symbolicznymi Możliwość przetwarzania plików konfiguracyjnych w katalogu serwera Opcja włącza widok folderów
Kontrola dostępu do serwera Apache: Moduły uwierzytelniające mod_access kontrola na podstawie źródłowego IP i innych cech żądania mod_auth uwierzytelnianie użytkowników witryny na podstawie nazwy i hasła mod_auth_anon zapewnia anonimowy dostęp w stylu FTP do obszarów zawierających pliki do pobrania mod-ssl - pozwala uwierzytelniać użytkowników na podstawie certyfikatów klienta
Kontrola dostępu do serwera Apache (mod_access)
Zezwalanie i blokowanie dostępu tylko dla określonych adresów IP
Uwierzytelnianie użytkowników (mod_auth) Można stosować zamiast plików.htaccess Wpisać w pliku /etc/apache2/apache2.conf lub httpd.conf Dodanie użytkownika htpasswd -c -s /sciezka/do/pliku/.htpass user1
Uwierzytelnianie za pomocą SQL
Blokowanie dostępu do plików systemowych i poufnych
Wyłączanie listingów katalogów <Directory /var/www/private> </Directory> Options -Indexes Apache pozwala definiować specjalne pliki indeksu za pomocą dyrektywy DirectoryIndex. Kiedy użytkownik przesyła żądanie dostępu do katalogu, Apache szuka jednego z plików indeksu (zwykle o nazwie index.html, index.php, home.html). Jeśli taki plik nie zostanie znaleziony, serwer zawraca stronę HTML z listingiem katalogu. Aby wyłączyć listingi katalogów, można wyłączyć moduł mod_autoindex albo dyrektywę Options ustawić na -Indexes
Apache jako serwer FTP moduł mod_ftp Wpis w pliku konfiguracyjnym uruchamiający usługę ftp
Hosting wirtualny Funkcja udostępniania wielu witryn WWW przez jeden serwer, każda witryna identyfikowana przez inne nazwy domenowe. Wielu komercyjnych dostawców usług hostingowych świadczy usługi setkom użytkowników za pomocą jednego serwera. Typy hostingu wirtualnego: Hosting wirtualny oparty na adresach IP Hosting wirtualny oparty na nazwach Hosting oparty na adresach IP i nazwach Hosting dynamiczny
Hosting wirtualny oparty na adresach Każdy host wirtualny posiada inny adres IP lub port
Hosting wirtualny oparty na nazwach Dyrektywa NameVirtualHost informuje serwer, że określony adres IP będzie używany przez hosty wirtualne oparte na nazwach Serwer decyduje, który z hostów obsłuży żądanie na podstawie wartości nagłówka Host Przykład: Dwa hosty wirtualne współdzielące jeden adres IP
Domyślny host wirtualny oparty na nazwach Serwer obsługuje plik default.htm z listą dostępnych witryn lub dodatkowymi informacjami na temat połączenia
Łączenie hostów wirtualnych opartych na nazwach i adresach
Dynamiczny hosting wirtualny Stosowany w przypadku tysięcy witryn Moduł mod_vhost_alias pozwala dynamicznie konfigurować katalog główny dokumentów dla każdego hosta wirtualnego Żądania odwzorowane są na ścieżkę w systemie plików w zależności od informacji zawartych w samym żądaniu, takich jak adres IP lub nazwa hosta VirtualDocumentRoot /usr/local/apache/vhosts/%0 VirtualScriptAlias /usr/localapachevhosts/%0/cgi-bin %0 nazwa %p numer portu %1 pierwsza część nazwy domenowej Jeżeli użytkownik wyśle żądanie pliku /manual/index.html do hosta www.example.com to dyrektywa VirtualDocumentRoot odwzoruje je na plik /usr/local/apache/vhosts/www.example/manual/index.html
Pliki dziennika serwera Apache W Linuxie i Unixie w folderze /var/log/apache2 w Windows folder logs: Plik access.log zawiera informacje o żądaniach zrealizowanych przez serwer takie jak adres URL, adres IP klienta oraz czy żądanie zostało zrealizowane pomyślnie czy też nie; Plik error.log zawiera informacje o błędach, a także o różnych zdarzeniach występujących podczas działania serwera
Zwiększanie wydajności i skalowalności serwera Apache Dostrajanie sprzętu - kontrola przy pomocy vmstat (problemy z RAM, CPU lub szybkością dysku) Zwiększenie liczby procesów systemu: Wyświetlenie max ilości wątków(procesów) systemu cat /proc/sys/kernel/threads-max np. 8191 Zwiększenie: echo wartosc >/proc/sys/kernel/threads-max Zwiększenie liczby deskryptorów plików przydzielonych jednemu procesowi: cat /proc/sys/fs/file-max np. 49997 (liczba plików otwartych przez jeden proces) Zwiększanie wydajności systemu plików noatime w pliku /etc/fstab: wyłączenie rejestrowania czasu ostatniego dostępu do plików /dev/sda3 /www ext4 defaults,noatime 1 1 Kontrola dowiązań symbolicznych w pliku konfiguracyjnym: Options FollowSymLinksIfOwnerMatch Wyłączanie i ograniczanie rejestrowania żądań w plikach dziennikujących: BufferedLogs On Wyłączanie plików konfigurujących katalogi, jeżeli serwer nie używa np..htaccess : <Directory /> AllowOverride none </Directory> Dyrektywa AllowOverride pozwala ustawić rodzaj dyrektyw zarządzających poszczególnymi katalogami