02 Linux Konfiguracja serwera WWW APACHE

background image

pdfcrowd.com

open in browser PRO version

Are you a developer? Try out the

HTML to PDF API

KONFIGURACJA SERWERA WWW (APACHE)

Wraz z dystrybucją Linuksa otrzymujemy najpopularniejszy od lat, darmowy pakiet oprogramowania
Apache. Nazwa "APACHE" powstała od słowa path (łata), gdyż serwer ten powstał na podstawie łat do
ogólnie dostępnego serwera WWW - NCSA.
Zestaw ten jest jednym z najczęściej stosowanych serwerów WWW, pracujących nie tylko pod
kontrolą Linuksa, ale jest dostępny również dla systemu Windows. Dzięki obszernej dokumentacji na
swój temat, prostych zasadach konfiguracji, uniwersalności, obsłudze CGI (Common Gateway
Interface), PHP (Hypertext Preprocessor) i możliwości stworzenia wielu serwerów wirtualnych na
jednym lub wielu IP, serwer ten jest jednym z najpopularniejszych serwerów WWW wśród zwykłych
użytkowników, jak i wśród dużych firm zajmujących się świadczeniem usług internetowych.
Dla przeciętnego użytkownika serwer ten jest najczęściej przydatny do testowania wykonanych przez
siebie stron WWW, a głównie skryptów CGI i PHP, które są często podłączone do stron, jako liczniki,
księgi gości, wyszukiwarki czy programy przetwarzające różnorakie dane.

Apache rozprowadzany na licencji public domain daje możliwość dostępu do kodu źródłowego
serwera. Siłą napędową rozwoju serwera jest Apache Group - zespół programistów ochotników, którzy
wraz z użytkownikami rozwijają program, jako Apache Project, dając każdemu szansę napisania
nowych łat do programu .

Główna baza programu znajduje się pod adresem :

http://www.apache.org

background image

pdfcrowd.com

open in browser PRO version

Are you a developer? Try out the

HTML to PDF API

1) Instalacja serwera
2) Uruchamianie i zatrzymywanie serwera
3) Konfiguracja serwera
4) Serwery wirtualne

1) Instalacja serwera

Serwer Apache możemy zainstalować na dwa sposoby :

poprzez pakiet RPM
kompilując źródło z kodem serwera (metoda dla bardziej zaawansowanych
użytkowników)

Instalacja z RPM

Pakiet RPM z serwerem można znaleźć na jednej z płyt CD, z których instalowany był system.
Instalację można przeprowadzić programem rpm :

rpm -ivh apache.rpm

Pliki z pakietu RPM są instalowane w następujących katalogach :

/etc/httpd/conf - katalog ten zawiera wszystkie pliki konfiguracyjne

background image

pdfcrowd.com

open in browser PRO version

Are you a developer? Try out the

HTML to PDF API

/etc/rc.d - RPM instaluje tutaj wszystkie potrzebne skrypty do automatycznego lub ręcznego
uruchamiania serwera
/home/httpd - w tym katalogu instalowane są wszystkie ikony, skrypty CGI i pliki HTML używane
przez serwer
/usr/bin - tu znajdują się pliki wykonywalne serwera wraz z wieloma narzędziami służącymi do obsługi
serwera
/var/log/http - w tym katalogu znajdują się pliki z dziennikami zdarzeń

Kompilacja źródeł

W pierwszej kolejności należy uruchomić skrypt ./configure wraz z opcją --prefix, dzięki której
można przekazywać do skryptu różne parametry, np. położenie wraz z nazwą katalogu, w którym
zostanie zainstalowany Apache :

./configure -prefix=/katalog/instalacyjny

Uruchomienie tego skryptu spowoduje powstanie w katalogu /src/ plików Configuration i Makefile.
Teraz wydajemy polecenia

make

,

makeinstall

i nasze pliki serwera zostaną skompilowane i

zainstalowane.

2) Uruchamianie i zatrzymywanie serwera

Proces uruchamiania serwera httpd może być wykonywany ręcznie lub automatycznie.
Uruchamianie Apacha z linii poleceń pozwala na zmianę domyślnie ustawionych parametrów, takich
jak położenie plików konfiguracyjnych.

background image

pdfcrowd.com

open in browser PRO version

Are you a developer? Try out the

HTML to PDF API

Składnia polecenia

httpd

jest następująca :

httpd [-d katalog] [-f pliki] [-C dyrektywa] [-v] [-V] [-h] [-l] [-L] [-S]
[-t]

gdzie :

-d

- określa położenie katalogu ServerRoot (położenie głównego katalogu z zainstalowanym

serwerem)

-f

- określa położenie głównego pliku konfiguracyjnego, httpd.conf . Serwer podczas uruchamiania

czyta i wykonuje dyrektywy, znajdujące się właśnie w tym pliku

-v

- parametr ten powoduje wyświetlenie wersji Apache, nie uruchamiając serwera

-V

- parametr ten powoduje wyświetlenie wszystkich ustawień obowiązujących w chwili kompilacji

serwera

-h

- wyświetla informacje o sposobie użycia polecenia httpd

-l

- wyświetla listę modułów włączonych do kodu serwera w trakcie kompilacji

-L

- wyświetla listę dyrektyw konfiguracyjnych wraz z informacją, z którego modułu pochodzi dana

dyrektywa

-s

- opcja ta powoduje wyświetlenie ustawień serwerów wirtualnych pobranych z pliku

konfiguracyjnego

-t

- opcja ta powoduje przeanalizowanie wszystkich plików konfiguracyjnych serwera bez

uruchamiania Apacha

Jeśli chcemy, aby nasz serwer uruchamiał się automatycznie podczas startu systemu należy
umieścić specjalny skrypt httpd w katalogu /etc/rc.d/init.d/ .

Dzięki opcjom tego skryptu można kontrolować działanie serwera :

background image

pdfcrowd.com

open in browser PRO version

Are you a developer? Try out the

HTML to PDF API

start - system używa tej opcji do uruchomienia usługi podczas start systemu.Opcja ta jest również
dostępna dla użytkownika ROOT
stop - opcja ta jest wykorzystywana do bezpiecznego zamknięcia usługi - powinno się jej używać
zamiast polecenia kill
reload - opcja ta powoduje ponowne odczytanie pliku konfiguracyjnego bez zamknięcia serwera
restart - rezultat wywołania skryptu z tą opcją jest taki, jak uruchomienie skryptu z opcją stop a
następnie z opcją start
status - rezultatem wywołania tej opcji jest wyświetlenie identyfikatora PID serwera i wszystkich jego
procesów potomnych

3) Konfiguracja serwera

Konfiguracja pracy serwera polega na uaktywnianiu pewnych dyrektyw, które w zasadzie są
poleceniami ustawiającymi konkretną opcję.

Dyrektywy konfiguracyjne mają zazwyczaj taką samą składnię :

dyrektywa opcja opcja ...

W jednej linii można umieścić tylko jedną dyrektywę.
Dzięki dyrektywom można określać złożone opcje lub ustawić tylko konkretną wartość.

Niektóre dyrektywy zwane sekcjami mają budowę typu :

<dyrektywa opcja>
dyrektywa opcja opcja
dyrektywa opcja opcja

background image

pdfcrowd.com

open in browser PRO version

Are you a developer? Try out the

HTML to PDF API

</dyrektywa>

Głównym i najważniejszym plikiem konfiguracyjnym serwera jest plik httpd.conf.
W pliku tym możemy umieścić wszystkie dyrektywy potrzebne do prawidłowego działania serwera.

Najważniejsze dyrektywy konfiguracyjne to :

ResourceConfig /dev/null
AccessConfig /dev/null

W pierwszych wersjach serwera dyrektywy konfiguracyjne były umieszczane dodatkowo w dwóch
plikach : srm.conf i acces.conf . Dyrektywy te nakazują serwerowi zignorowanie tych plików, gdyż
cała konfiguracja serwera zawarta jest w jednym pliku : httpd.conf .

ServerType

Dzięki tej dyrektywie można ustawić dwa typy pracy naszego serwera : standalone, inetd .
Ustawienie typu serwera na standalone spowoduje, że nasz serwer będzie utrzymywany przez
system przez cały czas w gotowości do obsłużenia każdej prośby.
Opcja inetd spowoduje, że w reakcji na pojawiającą się prośbę zostanie uruchomiony oddzielny
serwer i po jej obsłużeniu zostanie wyłączony.

ServerRoot

background image

pdfcrowd.com

open in browser PRO version

Are you a developer? Try out the

HTML to PDF API

Dyrektywa ta określa najwyższy katalog drzewa katalogów, względem którego określane będą
lokalizacje plików konfiguracyjnych i dzienników.

Port

Wskazujemy port, na którym nasz serwer będzie prowadził nasłuchiwania.
Domyślnie przyjmowanym portem jest port 80.

Listen

Możemy dokonać powiązania z określonym portem (lub adresem IP), na którym serwer będzie
prowadził nasłuchiwanie.

User
Group

Dyrektywa ta wskazuje na użytkownika i grupę, których własnością będzie proces httpd .
Przed ustawieniem tych opcji należy upewnić się, że podany użytkownik i grupa posiadają wpisy w
plikach passwd i group.
Należy być świadomym tego, że nasz serwer będzie pracował z prawami podanego użytkownika i
grupy co oznacza, że w przypadku włamania do systemu poprzez serwer lub jeden z programów CGI
włamywacze dostaną właśnie te prawa.

background image

pdfcrowd.com

open in browser PRO version

Are you a developer? Try out the

HTML to PDF API

ServerAdmin

Opcja ta powinna wskazywać na adres internetowy administratora serwera.

ServerName

Opcją tą ustalamy nazwę serwera zwracaną klientowi, jeśli rożni się ona od nazwy podanej w zadaniu
. Nazwa ta musi być zgodna z nazwą podaną na serwerze DNS.

StartServers

Dyrektywą tą określamy liczbę serwerów uruchamianych podczas startu Apache.

MaxClients

Jest to maksymalna liczba klientów, którzy mogą być obsłużeni w tym samym czasie.
Jeśli limit ten zostanie przekroczony, to obsługa nadmiarowych klientów będzie wstrzymana, co
umożliwia ochronę systemu przed załamaniem w wyniku przeciążenia serwera.

MinSpareServers
MaxSpareServers

background image

pdfcrowd.com

open in browser PRO version

Are you a developer? Try out the

HTML to PDF API

Dyrektywy te regulują liczbę zapasowych procesów potomnych serwera - aby serwer mógł
dynamicznie dostosować się do obciążenia.
Oznacza to, że serwer utrzymuje potrzebną liczbę procesów do obsłużenia połączeń i kilka
dodatkowych do obsługi gwałtownego wzrostu obciążenia.
Osiąga się to przez okresowe sprawdzanie liczby serwerów, oczekujących na wywołanie, i jeśli liczba
ta jest mniejsza niż

MinSpareServers

, to dodaje zapasowe, a jeśli wolnych serwerów jest więcej niż

MaxSpareServers

, to część z nich jest likwidowana.

Timeout

Opcją tą określamy limit czasu przeznaczony na obsługę pojedyńczego żądania.

KeepAlive

Dyrektywą tą możemy zezwolić na obsługę wielu zadań w ramach jednego połączenia.

MaxKeepAliveRequests

Określamy maksymalną liczbę zadań w ramach jednego połączenia.

KeepAliveTimeout

background image

pdfcrowd.com

open in browser PRO version

Are you a developer? Try out the

HTML to PDF API

Określamy czas oczekiwania na kolejne zadanie w ramach tego samego połączenia.

MaxRequestsPerChild

Dyrektywą tą możemy określić maksymalna liczbę żądań obsługiwanych w cyklu życia procesu
potomnego.

UseCanonicalName

Włączenie tej opcji nakazuje serwerowi, by w przypadku odwołań wskazujących na siebie tworzył
adres URL na podstawie wartości z

ServerName

i

Port

.

Jeśli opcja ta jest wyłączona, adresy URL tworzone są na podstawie nazwy hosta i numeru portu
pobranego z żądania.

DocumentRoot

Dyrektywa ta powinna zawierać ścieżkę do katalogu zawierającego katalog główny serwisu WWW,
skąd będą pobierane dokumenty do wysłania klientowi.
Zawartość tego katalogu używana jest domyślnie do obsługi wszelkich zadań.

UserDir

background image

pdfcrowd.com

open in browser PRO version

Are you a developer? Try out the

HTML to PDF API

Dyrektywa ta określa podkatalog katalogu macierzystego użytkownika w przypadku odwołania do
adresu zawierającego ciąg ~użytkownik, w którym może on umieszczać publiczne dokumenty HTML
.

DirectoryIndex

W dyrektywie tej znajdują się nazwa pliku lub plików zawierających indeks katalogu, czyli pliki, które
zostaną wysłane użytkownikowi w odpowiedzi na żądanie dostępu do adresu.

IndexIgnore

Umożliwia określenie nazwy plików, które będą ignorowane podczas indeksowania katalogu.

FancyIndexing

Dyrektywa ta umożliwia włączenie dodatkowych opcji indeksowania katalogów.

AddIconByType
AddIcon

Opcją tą informujemy serwer, które ikony będą reprezentowały pliki o określonych typach lub
rozszerzeniach.

background image

pdfcrowd.com

open in browser PRO version

Are you a developer? Try out the

HTML to PDF API

Ikony wyświetlane są gdy włączymy -

FancyIndexind

.

DefaultIcon

Opcja ta określa domyślną ikonę dla plików, którym nie przypisano jej jawnie poprzez ustawieni opcji w

AddIconByType

i

AddIcon

.

LoadModule
AddModule

Aby móc używać modułów skompilowanych jako DSO, należy je załadować, a następnie dodać do
serwera. Kolejność ładowania modułów jest istotna.

Najważniejsze moduły to :

core - zawiera podstawowe funkcje zawsze dostępne w dystrybucji (kontrolują również inne moduły)

mod_access - kontrola dostępu do plików w zależności od adresu IP lub nazwy komputera klienta.
Użycie tego modułu pozwala na dokładną kontrolę użytkowników np.:administrator może zezwolić na
wykonywanie skryptów CGI tylko pracownikom firmy

mod_actions - odpowiada za wykonywanie skryptów CGI w zależności od typu danych lub sposobu
pobrania

mod_alias - pozwala mapować (udostępniać) część systemu plików w katalogu głównym Apache-a,
umożliwia też przekierowywanie adresów URL. Część plików może znajdować się poza katalogiem lub

background image

pdfcrowd.com

open in browser PRO version

Are you a developer? Try out the

HTML to PDF API

nawet na innym komputerze w sieci

mod_asis - deklaracja plików, które mogą być wysyłane bez nagłówków HTTP (pliki *.asis)

mod_auth - moduł odpowiedzialny za uwierzytelnianie użytkowników na podstawie zdefiniowanych
plików tekstowych

mod_auth_anon - pozwala anonimowym użytkownikom na dostęp do danych, podlegających
weryfikacji dostępu

mod_auth_db - uwierzytelnianie za pomocą plików DB

mod_auth_dbm - uwierzytelnianie za pomocą plików DBM

mod_autoindex - automatyczne tworzenie indeksów dla katalogów, które nie mają
standardowych plików index.*htm*

mod_cern_meta - emulacja plików CERN HTTPD pozwala dodawać dodatkowe nagłówki do
wszystkich plików

mod_cgi - prawdopodobnie najpopularniejszy moduł. Pozwala wykonywać skrypty CGI po stronie
serwera i zwracać wyniki klientowi

mod_digest - uwierzytelnianie za pomocą algorytmu MD5

mod_dir - podstawowe operacje na katalogach. Zwykle używany do uzupełniania adresu np.:
http://serwer.pl/plik zostanie zastąpiony poprawnym wywołaniem http://serwer.pl/plik/

mod_env - moduł odpowiedzialny za przekazywanie zmiennych środowiskowych do skryptów
CGI/SSI

background image

pdfcrowd.com

open in browser PRO version

Are you a developer? Try out the

HTML to PDF API

mod_example - demonstracja możliwości interfejsu programowego - Apache API

mod_expires - dodaje znacznik Expires (strona wygasa, traci ważność) do stron WWW
przesyłanych klientowi - ważne dla często zmienianych serwisów, które powinny być zawsze aktualne

mod_headers - pozwala na dowolną modyfikację nagłówków HTTP

mod_imap - wsparcie dla map plików graficznych (.map) używane po stronie serwera WWW

mod_include - pozwala włączyć zawartość plików lub wyniki działania skryptu do zwykłych plików
HTML i zwracać ich zawartość klientowi

mod_info - odpowiedzialny za informację o ustawieniach serwera Apache

mod_log_agent - zapisywanie w logach nazw i wersji przeglądarek internetowych klientów

mod_log_config - konfigurowalne logowanie zdarzeń - pliki log zapisywane są w formacie Common
Logfile Format

mod_log_referer - logowanie odwołań do plików umieszczonych na serwerze

mod_mime - określenie typu pliku na podstawie rozszerzenia

mod_mime_magic - określenie typu pliku na podstawie kilku bajtów jego zawartości

mod_mmap_static - pozwala określić pewne niezmienne pliki, które zostaną umieszczone w pamięci
serwera Apache w celu szybszego dostępu

mod_negotiation - odpowiedzialny za uzgadnianie najlepszej reprezentacji danych w przeglądarce

background image

pdfcrowd.com

open in browser PRO version

Are you a developer? Try out the

HTML to PDF API

klienta. Wprowadzony ze względu na zgodność z HTTP/1.1

mod_proxy - Apache staje się serwerem proxy dla stron WWW, przyspiesza dostęp do często
używanych danych, gdy serwer WWW jest wykorzystywany do zapamiętywania danych

mod_rewrite - moduł o ogromnych możliwościach. Pozwala modyfikować adresy URL w "locie" za
pomocą wyrażeń regularnych

mod_setenvif - pozwala modyfikować zmienne środowiskowe na podstawie wywołania

mod_so - moduł eksperymentalny. Powoduje ładowanie dodatkowych modułów podczas działania
serwera

mod_speling - moduł odpowiedzialny za poprawianie błędów w adresach URL

mod_status - wyświetla bieżący stan serwera Apache

mod_userdir - ustawienia dotyczące katalogów domowych użytkowników

mod_unique_id - generuje unikalny identyfikator dla każdego żądania

mod_usertrack - śledzenie zachowań użytkowników za pomocą Cookies (tzw. ciasteczka),
szczególnie przydatne dla np. stałych klientów w sklepach internetowych lub do określania preferencji
użytkownika

mod_vhost_alias - moduł wykorzystywany przy konfiguracji serwerów wirtualnych

ReadmeName

background image

pdfcrowd.com

open in browser PRO version

Are you a developer? Try out the

HTML to PDF API

HeaderName

Dyrektywy te określają nazwy plików zawierających stopkę i nagłówek dołączony na końcu i początku
indeksu katalogu.

ScriptAlias

Opcja ta określa, w którym katalogu będą znajdować się skrypty serwera (zawartość katalogu
traktowana jest, jako aplikacje).

AddHandler cgi-script .cgi

Opcja zezwalająca na używanie skryptów CGI.

AddHandler server-parsed .shtml

Opcja zezwalająca na używanie poleceń SSI w dokumentach HTML.

AddHandler send-as-is asis

Zezwalamy serwerowi na przesyłanie dokumentów w postaci niezmodyfikowanej.

background image

pdfcrowd.com

open in browser PRO version

Are you a developer? Try out the

HTML to PDF API

AddHandler imap-file map

Zezwalamy na używanie map graficznych, interpretowanych po stronie serwera.

AddHandler type-map var

Zezwalamy na wykorzystywanie map typów.

TypesConfig

Dyrektywa ta służy do wskazywania lokalizacji plików: mime types.

DefaultType

Wskazujemy domyślny typ MIME używany w przypadku niemożności jego określenia.
Jeśli serwer przechowuje głównie dokumenty tekstowe HTML, to najlepiej użyć wartości "text/plain",
jeśli natomiast udostępniane pliki są w większości binarne, to lepiej użyć "aplication/octet-stream", co
pozwoli zabezpieczyć przeglądarki przed próbami wyświetlania zawartości plików binarnych w postaci
tekstowej.

background image

pdfcrowd.com

open in browser PRO version

Are you a developer? Try out the

HTML to PDF API

AddType

Pozwala na dodanie nowego typy MIME bez konieczności modyfikowania pliku mime types.

AddLanguage

Dyrektywa ta pozwala na obsługę wielu wersji językowych dokumentów, co pozwoli na dostarczenie
przeglądarce dokumentu w żądanym przez nią języku.

LanguagePriority

Określa priorytet wersji językowej w przypadku braku rozstrzygnięcia podczas negocjacji zawartości.
Lista powinna zawierać kody języków w kolejności malejących priorytetów.

AddEncoding

Dyrektywa ta daje możliwość przeglądarkom na rozpakowywanie danych w locie.

AccessFileName

Opcją tą wskazujemy na plik odpowiedzialny za ustawienie kontroli dostępu do katalogu.

background image

pdfcrowd.com

open in browser PRO version

Are you a developer? Try out the

HTML to PDF API

ProxyRequests

Dyrektywą tą ustawiamy nasz serwer, jako serwer pośredniczący.

Alias /alias/ "/prawdziwa nazwa/"

Dyrektywa ta umożliwia nam zdefiniowanie dowolnej liczby aliasów dla katalogów.
Zawartość katalogu określonego za pomocą tej dyrektywy traktowana jest, jak dokument, a nie
aplikacja.

ErrorLog

Określenie położenia pliku dziennika błędów.

LogLevel

Dyrektywa ta ustala ilość informacji rejestrowanych w pliku error_log.
Możliwe opcje tej dyrektywy to :

debug, info, notice, warn, error, critic, alert,

emerq

.

background image

pdfcrowd.com

open in browser PRO version

Are you a developer? Try out the

HTML to PDF API

CustomLog

Określamy położenie pliku dziennika transakcji : rejestrowanie informacji o typie przeglądarki i adresie
źródłowym odwołania.

LogFormat

Dzięki tej opcji możemy ustalić wzorce formatów dla dyrektywy

CustomLog

.

HostnameLookups

Dzięki tej dyrektywie możemy nakazać serwerowi, aby rejestrował nazwy klientów (on) lub tylko ich
adresy (off).

PidFile

Dyrektywa ta zawiera nazwę pliku, do którego serwer podczas startu zapisze swój PID.

ScoreBoardFile

Określa plik do zapisywania wewnętrznych informacji o procesach potomnych serwera.

background image

pdfcrowd.com

open in browser PRO version

Are you a developer? Try out the

HTML to PDF API

ErrorDocument

Ta dyrektyw może zawierać komunikaty o błędach serwera. Jako opcja może być również podany
adres strony, która wyświetli informacje o błędzie.

BrowserMatch "Mozilla/2" nokeepalive
BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response

Opcje te ustawiają blokadę podtrzymywania połączenia w przypadku komunikacji z przeglądarką
Netscape 2.x (implementacja ta zawiera błędy).
Druga dyrektywa przeznaczona jest dla programu Internet Explorer 4.0b2, który posiada błędy w
obsłudze podtrzymywania połączenia po otrzymaniu odpowiedzi 301,302.

BrowserMatch "RealPlayer 4\.0" force-response-1.0
BrowserMatch "Java/1\.0" force-response-1.0
BrowserMatch "JDK/1\.0" force-response-1.0

Powyższe dyrektywy wymuszają wysyłanie odpowiedzi w protokole HTTP/1.1 opatrzonych
nagłówkiem HTTP/1.0 na użytek przeglądarek niewłaściwie interpretujących dane w tym protokole.

Dla każdego katalogu i jego podgatalogów, do którego Apache ma dostęp można określić zestaw
dostępnych w nim praw, usług i funkcji. Służy do tego sekcja :

background image

pdfcrowd.com

open in browser PRO version

Are you a developer? Try out the

HTML to PDF API

<Directory / katalog_do_którego_będą_odnosić_się_ustawienia>
dyrektywy
</Directory>

składająca się z następujących dyrektyw :

Options - dyrektywa ta może przyjmować następujące opcjie:

None

- żadna z dostępnych opcji nie zostanie włączona w tym katalogu

All

- wszystkie dostępne opcje (poza MultiViews) są włączone w tym katalogu

Indexes

- w przypadku braku pliku podanego dyrektywą DirectoryIndex zostanie wyświetlona lista

plików w tym katalogu (w postaci strony HTML)

FollowSymLinks

- pozwala na dostęp do katalogu poprzez dowiązania symboliczne

ExecCgi

- daje możliwość wykonywania w tym katalogu skryptów CGI, nawet jeśli nie jest to katalog

określony dyrektywą

ScriptAlias

,

MultiView

- kiedy na serwerze nie ma pliku, o który prosi klient, serwer próbuje zgadnąć, który

dokument najbardziej pasuje do prośby klient

AllowOverride - dyrektywa ta określa, które parametry konfiguracji głównej można zmieniać dla
podkatalogów za pomocą plików .htaccess.

Dyrektywa AllowOverride składa się z następujących opcji :

Options

- plik .htaccess może zmieniać opcje nie wymienione w dyrektywie Options dla danego

katalogu

FileInfo

- plik .htaccess może zawierać dyrektywy modyfikujące typ informacji dokumentu

background image

pdfcrowd.com

open in browser PRO version

Are you a developer? Try out the

HTML to PDF API

FileInfo

- plik

może zawierać dyrektywy modyfikujące typ informacji dokumentu

AutoConfig

- plik .htaccess może zawierać dyrektywy odpowiedzialne za autoryzację dostępu

Indexes

- plik .htaccess może zawierać dyrektywy sterujące indeksowaniem katalogów

Limit

- plik .htaccess może zawierać dyrektywy

allow

,

deny

i

order

,

order

- określa, jakie prawa dostępu można nadać katalogowi

allow

- dostęp do katalogu jest możliwy

deny

- dostęp do katalogu jest zabroniony

allow from all

lub

deny from all

- określa, kogo obowiązują dane prawa.

4) Serwery wirtualne

Serwery wirtualne są jedną z bardziej popularnych usług dostarczanych przez serwer Apache. Dzięki
odpowiedniej konfiguracji kilku dyrektyw można stworzyć praktycznie nieograniczoną liczbę serwerów
WWW, znajdujących się na tym samym fizycznym serwerze, posiadających własne unikalne nazwy i
przechowujących swoje dane w odrębnych katalogach .

Serwer Apache dostarcza dwóch sposobów tworzenia hostów wirtualnych.

Możemy posiadać tylko jeden adres IP z wieloma rekordami CNAME umieszczonymi na serwerze
DNS, które będą wskazywały właśnie na ten adres lub druga możliwość, to stworzenie tylu serwerów,
ile mamy dostępnych adresów (jeden serwer przyporządkowany jednemu interfejsowi).

background image

pdfcrowd.com

open in browser PRO version

Are you a developer? Try out the

HTML to PDF API

Serwery wirtualne identyfikowane nazwami domenowymi

Konfiguracja serwera identyfikowanego nazwami domenowymi umożliwia uruchomienie wielu hostów
wirtualnych na tym samym fizycznym serwerze, któremu przyporządkowany jest tylko jeden adres IP
(jeden adres IP wiele serwerów WWW).
Aby było to możliwe należy umieścić na serwerze DNS dodatkowe nazwy dla naszego serwera za
pomocą rekordu CNAME. Wówczas gdy klient HTTP wyśle żądanie skierowane do serwera, wysyła
wraz z nim zmienną określającą nazwę serwera, do którego żądanie jest adresowane. To właśnie w
oparciu o tę zmienną serwer określa, do którego wirtualnego hosta ma przekazać żądanie.

Przed głównymi blokami konfigurującymi hosty wirtualne należy dodać dyrektywę :

NameVirtualHost IP_naszego_serwera

dzięki której określimy, który adres IP ma być skojarzony z więcej niż jedną nazwą.
Dla każdej nazwy obsługiwanej przez ten serwer należy stworzyć osobny blok dyrektyw w postaci :

<VirtualHost IP_naszego_serwera >

ServerName nazwa_hosta_1.nasza_domena
SerwerAlias alias1, alias2
DocumentRoot /ścieżka_do_katalogu_hosta_1/
TransferLog /ścieżka_do_katalogu_hosta_1/logs/acces_log
ErrorLog / ścieżka_do_katalogu_hosta_1/logs/error_log

</VirtualHost>

background image

pdfcrowd.com

open in browser PRO version

Are you a developer? Try out the

HTML to PDF API

<VirtualHost IP_naszego_serwera >

ServerName nazwa_hosta_2.nasza_domena
SerwerAlias alias1, alias2
DocumentRoot /ścieżka_do_katalogu_hosta_2/
TransferLog /ścieżka_do_katalogu_hosta_2/logs/acces_log
ErrorLog / ścieżka_do_katalogu_hosta_2/logs/error_log

</VirtualHost>

W blokach konfiguracyjnych pojawia się dyrektywa

SerwerAlias

.

Dyrektywą tą możemy określić aliasy dla nazwy naszego serwera wirtualnego, dzięki czemu
użytkownicy będą mogli używać skróconej nazwy hosta, np.:

zamiast
http://nazwa_hosta_1.nasza_domena/
można użyć nazwy
http://alias1/

Wewnątrz bloku <VirtualHost> </VirtualHost> możemy podawać dowolne dyrektywy
konfiguracyjne, które zostały omówione w poprzednich rozdziałach oprócz dyrektyw :

ServerType, StartServers, MaxSpareServers, MinSpareServers,
MaxRequestsPerChild, BindAddress, Listen, PidFile, TypesConfig, ServerRoot
.

Jeśli planujemy uruchomienie na naszym serwerze większej ilości hostów wirtualnych, dobrym

background image

pdfcrowd.com

open in browser PRO version

Are you a developer? Try out the

HTML to PDF API

rozwiązaniem jest umieszczenie wszystkich komunikatów w jednym pliku dziennika błędów, zamiast w
osobnych plikach. Dzięki temu rozwiązaniu unikniemy wyczerpania się systemowego limitu liczby
deskryptorów plików (zwykle 64 dla jednego procesu), co mogłoby spowodować brak wpisów w
dziennikach lub długi czas oczekiwania na odpowiedź serwera po pojawieniu się żądania HTTP.

Serwery wirtualne identyfikowane adresami IP

Konfiguracja tego typu serwerów jest dobrym rozwiązaniem, jeśli posiadamy dużą pulę adresów
publicznych. Wówczas każdemu interfejsowi w naszym systemie możemy przypisać jeden adres IP.

Konfiguracja tego typu serwerów jest adekwatna do konfiguracji serwerów identyfikowanych nazwami
domenowymi, z wyjątkiem braku dyrektywy

NameVirtualHost

.

Jeśli skonfigurowaliśmy poprawnie interfejsy sieciowe, to uruchomienie hostów wirtualnych ogranicza
się do dodania w pliku httpd.conf kilku prostych dyrektyw w postaci :

<VirtualHost adres_IP_dla pierwszego_hosta_1 >

ServerName www.nazwa_hosta_1.nasza.domena
DocumentRoot /ścieżka_do_katalogu_hosta_1/
TransferLog /ścieżka_do_katalogu_hosta_1/logs/acces_log
ErrorLog / ścieżka_do_katalogu_hosta_1/logs/error_log

</VirtualHost>

background image

pdfcrowd.com

open in browser PRO version

Are you a developer? Try out the

HTML to PDF API

Podobne bloki należy dodać dla każdego uruchamianego serwera, nie zapominając o zmianie ścieżek
dostępu do ich katalogów.

Przykładowy plik konfiguracyjny :

httpd.conf


Wyszukiwarka

Podobne podstrony:
04 Linux Konfiguracja serwera poczty elekrtonicznej POSTFIX
03 Linux Konfiguracja serwera FTP PROFTPD
Ubuntu linux Wlasny serwer www
serwer www apache
ZASTOSOWANIA Serwery WWW Apache
Konfiguracja serwera Apache, SSL w systemie GNU Linux
Konfiguracja serwera Apache, SSL w systemie GNU Linux
Apache Zabezpieczenia aplikacji i serwerów www
Apache Zabezpieczenia aplikacji i serwerow WWW apazab
Apache Zabezpieczenia aplikacji i serwerow WWW apazab
Konfiguracja serwera DNS w systemie operacyjnym linux
Apache Zabezpieczenia aplikacji i serwerow WWW 2
Apache Zabezpieczenia aplikacji i serwerow WWW
Apache Zabezpieczenia aplikacji i serwerow WWW apazab
Apache Zabezpieczenia aplikacji i serwerow WWW apazab
Apache Zabezpieczenia aplikacji i serwerow WWW apazab
Apache Zabezpieczenia aplikacji i serwerow WWW apazab

więcej podobnych podstron