Polazna | Networking | Mreže pod Linuxom | Apache Web Server

Apache Web Server

Veličina slova: Decrease font Enlarge font
image

Apache web server je program kome je osnovni zadatak da pošalje web materijal korisniku kada se u njemu upiše adresa računara na koju se Apache odaziva. Usprkos nastojanjima velikih svetskih firmi, kao što su Microsoft ili Netscape, da mu preotmu primat na tržištu, Apache je još uvek dominantan. Istraživanja pokazuju da skoro 60% svih web servera na svetu koriste baš ovaj programski paket.

Instalacija Apache servera 1.3

Instalacija Apache web servera u Debian i Mandrake Linux distribucijama ista je kao i za sve ostale pakete koji u njima dolaze, tj. putem Dselect i Software Manager programskih paketa.
U ovim distribucijama Apache će se instalirati u direktorijum /etc/httpd umesto uobičajenog direktorijuma /usr/local/apache.
Kod operativnog sistema FreeBSD  preporučuje se instalacija Apache servera iz tar.gz paketa koji se nalazi na CD-u zajedno sa besplatnim softverom. Posle otpakivanja Apache servera iz tar.gz arhive instalacija se pokreće pomoću skripte:
# ./install-bindist.sh  

Skripta se nalazi u direktorijumu koji je nastao otpakivanjem tar.gz paketa. Po defaultu server se instalira u direktorijum /usr/local/apache. Ako želimo da paket instaliramo u neki drugi direktorijum potrebno je instalacionu skriptu inicirati na sledeći način:
# ./install-bindist.sh /ime_direktorijuma  

Nakon instalacije paket je već podešen da se pokreće prilikom podizanja sistema.

Apache je moguće više puta instalirati na istom računaru. To se postiže tako što instalacionu skriptu iniciramo dva puta ali sa različitim direktorijumima u koje želimo da instaliramo server ili što skriptu pokrećemo opcijom -f pomoću koje možemo kreirati zasebne konfiguracione datoteke za svaki server. Ovakva instalacija je korisna ako želimo da imamo jedan server sa ograničenim pristupom koji će na ovaj način biti odvojen od glavnog servera.
Korišćenje drugog servera je korisno i ako želimo da testiramo noviju verziju Apachea pre nego što ga prebacimo da bude glavni server.

Konfiguracija

Postoji više načina kako konfigurisati Apache server. Najbolji je upisivanjem naredbi u datoteku httpd.conf, dok je nešto jednostavnije to uraditi pomoću programa Comanche. Apache se vrlo jednostavno može konfigurisati i programom linuxconf koji se, ako nemate instalirano grafičko okruženje, može pokrenuti i u tekstualnom môdu. Konfiguracija Apachea u linuxconfu nalazi se pod Networking -> Server Tasks -> Apache Web Server.

Konfiguracija upisivanjem naredbi u httpd.conf datoteku

Konfiguraciona datoteka za Apache server se zove httpd.conf i nalazi se u direktorijumu /etc/httpd/conf. Ona predstavlja ključni element kojim se definiše ponašanje instaliranog Apache web servera.

Zbog kompleksnosti, kao i vrlo širokog spektra mogućnosti koje ovaj server nudi, postoji i mnoštvo konfiguracionih parametara i opcija koji se mogu naći u datoteci httpd.conf. Ovde su iznete samo one najpotrebnije, koje je potrebno podesiti kako bi se omogućila osnovna funkcionalnost ovog servera.
Treba napomenuti da su te opcije već inicijalno postavljene u httpd.conf datoteci nakon uspešno obavljenog postupka instalacije, čime se znatno olakšava korišćenje  programa  i onoj grupi korisnika koji ne poznaju detalje konfiguracije servera.

Pre nego što se krene sa konfiguracijom potrebno je odrediti ime servera, u kom mrežnom okruženju će primati zahteve, gde će se nalaziti konfiguracione i log datoteke, kao i u kom direktorijumu će biti smešteni dokumenti web stranice. ServerName je ime na koje će server reagovati kada se u pretraživačkom programu upiše njegova URL adresa (www.ime_domena.yu). BindAddress je konfiguracioni parametar koji definiše IP adresu na kojoj server prima HTTP zahteve. Ovo zapravo i nije obavezan deo konfiguracije servera, nego mrežne konfiguracije računara na kojem se server nalazi. Ovim parametrom osiguravamo da klijent koji pristupa serveru preko imena ispravno poveže ime sa IP adresom. Inicijalna vrednost ovog parametra je                   BindAddress *     
što znači da server sluša sva mrežna okruženja na računaru.

Ukoliko želimo da server sluša izričito određenu adresu moramo da napišemo, na primer:
BindAddress 192.168.1.1 

Ako želimo da server sluša samo klijente sa sopstvenog računara, napisaćemo:
BindAddress 127.0.0.1   

Problem ovog parametra je što specificira samo jednu IP adresu, jer se ne može zadavati više puta. Ako želimo da  odaberemo više od jedne IP adrese koje će server da sluša, koristi se parametar Listen. Tako će npr. linije:
Listen 192.168.1.1:80
Listen 192.168.1.1:443
Listen 192.168.1.2:80     
podesiti server tako da sluša portove 80 i 433 na adresi 192.168.1.1 i port 80 na adresi 192.168.1.2.
ServerType bira môd rada servera. Apache može raditi u dva môda:

- samostalno                                                                                                                                                                                                     ServerType

- standalone ili unutar inetd deamona
ServerType inetd

U samostalnom môdu rada server sam upravlja svojim mrežnim konekcijama i sluša portove koji su mu definisani. Ovo je uobičajen način rada Apache servera i takav se i preporučuje. Ako server radi unutar inetd deamona, on zanemaruje konfiguracione parametre i čeka da ga inetd pozove. Budući da inetd za svaku vezu ponovo poziva Apache, ovaj način rada je vrlo neefikasan i retko se koristi, pa ga zato ovde nećemo bliže ni opisivati.
User i Group konfigurišu server da radi pod određenim korisnikom i grupom. Kada je Apache pokrenut pod rootom (npr. kod podizanja sistema) on pokreće više potprocesa (child processes) i ako su User i Group podešeni, potprocesi gube root status i poprimaju identitet koji smo mi podesili.
Obično se postavlja vrednost nobody za korisnika i nogroup za grupu. Na taj način je server znatno sigurniji i otporniji na napade, pa ako nameravamo da  iniciramo Apache kao root trebalo bi podesiti ove parametre.
ServerAdmin definiše e-mail adresu administratora. Apache koristi ovu adresu da bi prijavio greške u radu. Adresa nije ograničena na domen u kojoj server radi, što znači da je moguće navesti bilo koju e-mail adresu.
ServerRoot definiše direktorijum u kom se nalaze sve važne datoteke potrebne za rad servera. Po defaultu, to je direktorijum /usr/local/apache, a kod Debian i Mandrake distribucija to je /etc/httpd direktorijum.
ErrorLog definiše ime datoteke u koju se smeštaju poruke o greškama u radu. Apache podržava više vrsta logova od kojih su uobičajeni access log, referer log i error log. Preporučuje se definisanje i korišćenje access log i error log parametara unutar Apache konfiguracione datoteke kako bi se na taj način omogućilo lakše otklanjanje grešaka u radu, kao i kontrolisanje pokušaja pristupa ovom serveru. Uobičajene vrednosti ovih parametara su:
 
ErrorLog /usr/local/apache/logs/error.log
CustomLog /usr/local/apache/logs/access.log

ili jednostavnije
 
ErrorLog /logs/error.log
CustomLog /logs/access.log     

a kod Mandrake i Debian distribucija
 
/etc/httpd/logs/error.log     

DocumentRoot pokazuje na direktorijum u kom se nalaze web stranice vašeg servera.
Uobičajeno server traži direktorijum /htdocs unutar direktorijuma definisanog u ServerRoot. Ako želimo promeniti ovu naredbu, možemo navesti ili relativnu putanju (ako je direktorijum unutar server roota) ili apsolutnu putanju ako želimo neki direktorijum van glavnog Apache direktorijuma. Sasvim je uobičajeno da se DocumentRoot stavi negde izvan ServerRoota zato da se web stranice odvoje od konfiguracionih datoteka. Default naredba je /usr/local/apache/htdocs, a na Debian i Mandrake računarima /var/www/.

Ovo su osnovni parametri za konfiguraciju Apache servera i dovoljni su za normalan rad. Ostali parametri u httpd.conf datoteci uglavnom su dobro komentarisani i po defaultu su postavljeni na odgovarajuće vrednosti.

Konfiguracija pomoću programa Comanche

Naprednija i jednostavnija mogućnost konfiguracije Apachea u grafičkom okruženju izvodi se pomoću programa Comanche. Paket Comanche3.0b4-x86-linux-glibc2.tar.gz je potrebno otpakovati pomoću naredbe:
 
# tar -xzvf ime_paketa  

Nakon toga potrebno je ući u direktorijum comanche3-0b4, pa tamo pokrenuti datoteku comanche3.0b4.
 
# ./comanche3.0b4 &  

Nakon pokretanja datoteke otvara se mali prozor u grafičkom okruženju, koji ima samo jedan taster (Comanche). Pritiskom na njega program se pokreće. Ako Comanche pokrećete prvi put, mora mu se pokazati put do vašeg Apache servera, pošto program “ne zna” gde je instalisan.
Comancheu se naknadno mogu dodavati dodatne putanje, ukoliko postoji instalirano više Apache servera na istom računaru.

Ukoliko je Apache paket instaliran iz neke Linux distribucije potrebno je odabrati Use the one bundled with my system opciju i u padajućem meniju odabrati adekvatnu distribuciju.

Za Apache instaliran iz tar.gz paketa potrebno je odabrati I installed Apache under opciju i upisati direktorijum u kome je instaliran vaš server, a to je obično /usr/local/apache (ukoliko nije navedeno drugačije tokom postupka instalacije).
Kada je podešena lokacija  Apache servera, otvoriće se glavni prozor Comanchea. 

Comanche je vrlo kompleksan alat u kome je na jednom mestu moguće upravljati instaliranim Apache modulima, a takođe čitati log i conf datoteke na lak način.

Ukoliko naknadno želimo da konfigurišemo programski paket Comanche tako da pomoću njega možemo da administriramo neki drugi postojeći Apache server, to je moguće postići na sledeći način: odaberemo Apache Web Server -> New Apache Installation opciju, posle čega sledi klasičan postupak dodavanja servera koji želimo da administriramo.

Da bi se izbeglo stalno pokretanje datoteke comanche3.0b4 iz terminala na desktop se može postaviti shorcut.

Pokretanje i zaustavljanje

Od distribucije do distribucije mogu se razlikovati direktorijumi u kojima se nalazi datoteka pomoću koje se pokreće Apache. Na primer, kod Debian distribucije putanja je /usr/sbin direktorijum, u kom se nalazi apache datoteka kojom će se pokrenuti ovaj server, dok se kod distribucije Mandrake u istom direktorijumu nalazi httpd datoteka, koja će obaviti isti posao.
Ukoliko se ne koristi inicijalna konfiguraciona datoteka ili je ista naknadno premeštena u drugi direktorijum, Apache je potrebno pokrenuti opcijom -f Na primer:
# /usr/local/apache/bin/httpd -f /home/web/httpd-test.conf   

Pokretanje Apache web servera izvodi sa naredbom:
# /usr/local/apache/bin/apachectl start  

Ako želimo da proverimo da li je server pokrenut to možemo vrlo jednostavno učiniti pomoću naredbe:
# ps -aux | grep httpd

Ako se ne može pokrenuti, Apache će javiti grešku i savetovaće da pokrenemo apachectl configtest koji će nam dati više detalja o problemu.

Ako je konfiguraciona datoteka dovoljno dobra da program može da prepozna gde se nalazi error log tamo će se naći dodatne informacije o problemu zbog kojeg se server ne može pokrenuti.

Čak i ako se server pokrene korisno je pogledati error log koji će ukazivati na moguće probleme koji nisu dovoljno ozbiljni da bi Apache prestao sa radom ali mogu predstavljati grešku u konfiguraciji. Kada se program normalno pokrene u error logu  trebalo bi da se pojavi poruka Server configured - resuming normal operations.

Ukoliko želimo da pregledamo error log dok se Apache pokreće korisna je naredba tail:
# tail -f /usr/local/apache/logs/error_log &     
posle koje je potrebno pokrenuti Apache.

Server se može ponovo pokrenuti sa kill -HUP gde je ID procesa Apache.

Treba uzeti u obzir da Apache pokreće potprocese (child processes) sa istim imenom da bi servisirao klijente, i da će se ponovo podignuti samo ako u kill naredbi navedemo originalan proces (roditeljski proces). Njega ćemo najlakše pronaći pomoću naredbe:
# ps -aux | grep httpd     
i to tako da tražimo proces koji je pokrenut pod root korisničkim imenom, a ne one pod drugim korisnicima (tipično 'nobody').

Alternativna opcija je da se pid procesa sazna iz pid datoteke koju Apache generiše prilikom pokretanja:
# kill -HUP 'cat /usr/local/apache/logs/httpd.pid'     

Ipak, najjednostavnije je koristiti apachectl program (za verzije >=1.3):
# /usr/local/apache/bin/apachectl restart   

U error logu tada bi trebalo pisati:
SIGHUP received . Attempting to restart
Server configured - resuming normal operation.   

Nažalost, ponovno podizanje servera izaziva prekid svih konekcija koje opslužuju klijente. Zbog toga postoji opcija graceful ponovnog podizanja:
# kill -USR1 'cat /usr/local/etc/httpd/logs/httpd.pid'     
ili pomoću apachectla:
# /usr/local/apache/bin/apachectl graceful 

Ovakav pristup ponovnog podizanja Apache servera povlači ponovno čitanje konfiguracione datoteke i prekidanje svih procesa koji nisu aktivni.
Aktivni procesi će se prekinuti tek kada se servisira klijent. Za to vreme port na koji Apache « sluša » neće se gasiti, tako da će se sačuvati red (queue) zahteva za konekciju (osim u slučaju ako se broj porta promenio).
Graceful restart bi trebalo koristiti kad god je to moguće, pogotovo ako web server prima mnogo zahteva.

Server se zaustavlja sa:
# kill -TERM      
ili
# /usr/local/apache/bin/apachectl stop   

Error log će tada sadržati poruku:
httpd: caught SIGTERM, shutting down     
 
Postavljanje Web stranica

Apache će prilikom instalacije u inicijalnom direktorijumu za smeštaj web stranica generisati svoju sopstvenu web stranicu, a najbolji način da se proveri da li sve ispravno radi je - da se u web pretraživaču upiše http://ime_uređaja.domen/, posle čega bi  trebalo da se učita pomenuta stranica. Umesto te stranice moguće je postaviti bilo koju drugu web stranicu, koja se želi prikazati.

Ukoliko se stranica nazove index.html ona će se učitati sama, čim se u web pretraživaču upiše osnovni URL servera (npr. http://ime_uređaja.domen), a ako je ime drugačije, moraće joj se pristupati sa http://ime_uređaja.domen/ime_stranice.html.

Ukoliko se ista stranica nalazi u nekom poddirektorijumu potrebno je upisati celu putanju do direktorijuma što može biti nezgodno ako ima više stranica i ako je struktura direktorijuma u kome se nalaze stranice, složenija.
U tu svrhu koriste se tzv. alias opcije, koje omogućuju da se URL prevede u neku drugu lokaciju na disku, a da klijent to ni ne zna. Na primer,
alias /icons/ /usr/local/apache/icons     
će imati za posledicu da svaki URL koji počinje sa /icons/ Apache automatski zamenjuje sa /usr/local/apache/icons pre nego što potraži zadatu datoteku.

Ovde bi takođe trebalo navesti opciju koja može biti vrlo korisna u slučajevima kada želimo da omogućimo većoj grupi korisnika objavljivanje sopstvenih stranica na jednom serveru. Naime, postavljanjem UserDir opcije u httpd.conf datoteci svakom korisniku pridružuje se unutar njegovog home direktorijuma njegov lični web direktorijum public_html u kome može objavljivati svoje sopstvene web stranice.
UserDir public_html  

Podrazumeva se da korisnik poseduje ispravno korisničko ime na tom računaru.

Nakon toga tim stranicama može se pristupiti vrlo jednostavno. Potrebno je u pretraživački program upisati URL adresu oblika:
http://ime_uređaja.domen/~korisničko_ime/ime_stranice     
što će rezultirati učitavanjem željene stranice iz direktorijuma:
/home/ime_korisnika/public_html      

Korisna adresa: www.apache.org

Prijavite se na feed komentara Komentara (0 poslato):

Pošaljite komentar comment

Unesite kod sa slike:

  • email Pošalji prijatelju
  • print Verzija za štampu
  • Plain text Samo tekst
Više iz kategorije Mreže pod Linuxom
Previous
image
Linux mail serveri: Sendmail server
Nastavljajući priču o Linuxovim serverima u sledećih nekoliko brojeva govorićemo o često korišćenim mail serverima. Ovom prilikom opisujemo popularni Sendmail server ...
image
Samba i WINS server: Dogovor mrežu gradi
Kao što smo pričali u prvom delu ovog kursa, kad se neki NetBIOS računar spoji na mrežu, prvo šta mora da napravi je da registruje svoje ime. Sa obzirom da dva računara unutar iste grupe ne mogu imati isto ime, jedan od načina da se to osigura je korišćenjem NBNS servera (NetBIOS Name Server). Takođe, NBNS se može koristiti i za povezivanje NetBIOS imena sa IP adresama Pre početka korišćenja NBNS, povezivanje imena potpuno je izvođeno preko broadcasta. Ako je bila potrebna IP adresa nekog računara, njegovo ime je bilo slato na mrežu pomoću broadcasta i računar bi samo odgovorio koja je njegova IP adresa. Taj je pristup još uvek moguć. Ali problem s broadcastom je što ne radi dobro na mrežama koje se sastoje od više podmreža i nepotrebno zagušuje mrežu. Da bi se rešio taj problem razvijen je WINS server (Windows Internet Name Service), Microsoftova varijanta NBNS-a, server koji radi sa višestrukim podmrežama i koji Samba podržava. ...
image
Pokretanja Samba servera
Da bi programski paket Samba uspešno funkcionisao potrebno je pokrenuti dva deamon procesa - smbd i nmbd... ...
image
Samba server - 2. deo
Instalacija, konfiguracija... ...
image
Samba server (1)
Sve su češće situacije kada postoji potreba za deljenjem resursa između računara sa instaliranim Windows i Linux operativnim sistemima. Zato ćemo ovom prilikom opisati programski paket Samba, koji predstavlja skup programskih modula koji omogućavaju deljenje računarskih resursa između računara sa instaliranim različitim operativnim sistemima, međusobno umreženih. Na samom početku iznećemo osnovna načela funkcionisanja ovog programa i njegovu ulogu, dok ćemo u nastavku pisati o postupcima instalacije, konfiguracije i drugim detaljima koji mogu biti uzrok brojnim problemima tokom integracije u vaš sistem. ...
image
Apache 2.0
Ovde će biti navedene najvažnije novine vezane za rad i instalaciju 2.0 verzije Apache servera, a u odnosu na verziju 1.3. ...
image
Apache Web Server (2)
U današnje vreme privatnost podataka vrlo je važna velikom broju korisnika, te je vrlo bitno da određene informacije budu dostupne samo onima kojima su namenjene. Upravo zbog toga ovog puta biće opisani postupci zaštite podataka pomoću Apache Web Servera. ...
image
Apache Web Server
Apache web server je program kome je osnovni zadatak da pošalje web materijal korisniku kada se u njemu upiše adresa računara na koju se Apache odaziva. Usprkos nastojanjima velikih svetskih firmi, kao što su Microsoft ili Netscape, da mu preotmu primat na tržištu, Apache je još uvek dominantan. Istraživanja pokazuju da skoro 60% svih web servera na svetu koriste baš ovaj programski paket. ...
image
Korišćenje LinNeighborhood za kreiranje mrežnog okruženja pod Linuxom
Često je podešavanje računarskih mreža složen posao. Microsoft je napravio da konfigurisanje i korišćenje mreža bude relativno jednostavno za MS Windows korisnike. Jednom konfigurisan Windows računar u lokalnoj mreži (LAN), može da deli resurse na udaljenim računarima, kao što su direktorijumi, fajlovi, printeri i njima se može jednostavno pristupati kroz Windows Network Neighborhood... Podešavanje deljenja udaljenih resursa na Linux baziranim računarima nije tako jednostavno. Pravljenje mreža postaje još složenije kada su u lokalnu mrežu uključeni računari i sa Linux i sa Windows operativnim sistemima. ...
image
Prvi koraci
Što se tiče operativnog sistema, mreža može biti pod Windowsom ili Linuxom, a vrlo je čest slučaj i mešovitih struktura, gde klijenti rade pod Windowsom, a server pod Linuxom. U ovom serijalu pažnju ćemo usredsrediti na Linux mreže... ...
image
Linux mail serveri:Postfix
Postfix je e-mail server koji je zamišljen kao alternativno rešenje vrlo popularnom i moćnom, ali jednako tako i komplikovanom, Sendmail programskom paketu. Odlikuje se brzinom (brži je i do tri puta od konkurenata), robustnošću i jednostavnošću konfiguracije, pa se preporučuje svim korisnicima koji nemaju dovoljno iskustva ni znanja vezanih za Linux operativni sistem... ...
image
FTP serveri - 1. deo
Počinjući priču o ftp serverima, u ovom nastavku radimo s vrlo popularnim Proftpd- om, koji kao gotov paket ulazi u sve Linux distribucije... ...
image
FTP serveri - 2. deo
U prošlom broju bilo je reči o vrlo popularnom ftp serveru - Proftpd. Ovog puta obrađujemo Wu-ftpd, koji takođe kao gotov paket ulazi u sve Linux distribucije... ...
image
Download, backup => rsync
Rsync je program koji služi za prebacivanje fajlova na Unix sistemima, koristeći "rsync" algoritam koji obezbeđuje vrlo brzo kopiranje fajlova. Program to obavlja šaljući kroz mrežu samo razlike u fajlovima... ...
image
Bolje UPS nego: "Ups!"
Računar iz električne mreže očekuje napon od 220V i frekvencu od 50Hz. On može tolerisati neznatne promene ovih veličina, ali ukoliko te promene pređu dozvoljene granice može doći do neregularnog rada sistema. UPS (računarski neprekidni izvor napajanja - computer's uninterruptible power supply) generalno štiti sistem od previsokih ili preniskih napona, totalnog prestanka napajanja i neznatne promene frekvence napajanja. Mi ćemo ovde govoriti o besplatnom softwareu koji suživot jednog administratora i UPS-a čini mnogo lakšim....
Next
Tagovi
Oceni
0