Objavljeno: 2.10.2005 15:17 | Avtor: Matjaž Klančar | Monitor Oktober 2005

Spletni strežnik doma (1)

Takih, ki imamo speljan kabelski internet ali ADSL, je vedno več in nas bo kmalu gotovo še več (še posebej ob novi možnosti ADSL prek analogne telefonske povezave). In kaj počnemo s temi silnimi megabiti? Hitro deskamo, si izmenjujemo (tudi) velika elektronska sporočila, morda tudi nekoliko piratiziramo in si nalagamo glasbene in filmske datoteke. Izkoriščamo torej le en del širokopasovne ponudbe - hitrost. Kaj ko bi se poizkusili tudi v drugem delu - stalnem priklopu? Izkoristimo torej povezavo in računalnik za to, da bomo svetu ponujali svoje informacije, kakršnekoli že, prek spletnega strežnika. Računalniku stalni vklopi in izklopi tako ali tako bolj škodijo, kakor če ga imamo neprestano prižganega, tako da je edini minus stalno delujočega računalnika glasnost - če seveda nimamo modela, ki je opremljen s tišjimi hladilniki ali če nimamo posebne računalniške sobe.

Kako se domačega spletnega strežnika sploh lotiti? Za začetek - pri internetnem ponudniku moramo zahtevati, da naši širokopasovni povezavi dodeli nespremenljivo številko IP. Pri povezavi ADSL je namreč ta največkrat dinamična in kot taka neuporabna za stalne (spletne) povezave. Dandanes ponudniki to uredijo zastonj. S tem dosežemo, da bodo uporabniki naš spletni strežnik dosegali prek povezave, ki je videti nekako takole: http://213.157.221.37. Deluje, vendar je na moč nerodno.

Veliko bolje si bo torej omisliti lastno domeno, ki bo te štiri številke spremenila v kaj bolj razumljivega. Npr. http://www.janez.net ali morda http://www.cankarjevi.com. Za to se bo treba obrniti na katerega izmed t. i. registrarjev oz. podjetij, ki se ukvarjajo z registracijo internetnih domen (v katerega izmed slovenskih iskalnikov vpišite "registrar" in videli boste, da je ponudba kar pestra). Če niste pravna oseba (podjetje), se lahko za registracijo domene ".si" zaenkrat obrišete pod nosom, saj se birokracija na tem področju pri nas še ni sprostila. Ostanejo torej mednarodne domene, med katerimi so najbolj priljubljene .com, .net in .org, na izbiro pa je še množica drugih. Bodimo realni - kaj bo pisalo v drugem delu (za piko) naše nove domene, je popolnoma nepomembno, tako da se lahko o izbiri odločamo povsem iz estetskih razlogov in seveda na podlagi cene. Registracija domene namreč ni zastonj, temveč moramo registrarju (on pa nosilcu domene) zanjo vsako leto nekaj plačati. Natančne cene vam bo povedal/pokazal registrar, povprečna cena za eno leto pa je nekako okoli 5000 tolarjev. Ko boste pri registrarju tako kupili (oz., bolje, "najeli") svojo domeno, boste dobili dostop do spletnega orodja, s katerim boste lahko vpisali podatke o domenskih strežnikih (DNS - Domain Name Server), ki imajo vpisane podatke oz. kazalce do vašega spletnega računalnika. Natančna razlaga tega presega namen tega članka, še posebej, ker lahko vse to prepustite tudi registrarju. Tudi vodenje domenskih strežnikov prepustite njemu, včasih zastonj, včasih za nekaj sto tolarjev na mesec. Skratka, če smo uredili vse to (oz. je to namesto nas postoril registrar), je naša številka IP od zunaj vidna tudi prek kupljenega domenskega imena (npr. jaz.com ali pa www.jaz.com).

Kupljeno domeno lahko upravljamo sami ali pa za to poprosimo kar našega registrarja.

Nadalje moramo do računalnika spustiti promet skozi TCP vrata številka 80, ki jih uporablja protokol HPPT oz. spletni brskalniki in strežniki. Če naš sistem ne premore požarnega zidu, je to že privzeto. Ker pa dvomimo, da nas/vas je takih nezaščitenih uporabnikov veliko, se bo treba vendarle pozabavati z nastavitvami le-tega. Če naše domače krajevno omrežje ne premore širokopasovnega usmerjevalnika, temveč je računalnik na ADSL/kabel povezan neposredno, bo dovolj v programskem požarnem zidu vklopiti prepustnost vrat št. 80. V obe smeri, seveda. Če imamo usmerjevalnik, pa bo treba uporabiti t. i. zmogljivost "port forwarding" (ponekod imenovano tudi "Virtual servers"), s katero dejansko dosežemo isto. V nastavitvenem vmesniku usmerjevalnika bo treba izbrati, da se promet prek vrat 80 prenaša ("forwardira") v naš računalnik oz. njegovo številko IP. Mimogrede, na tej točki je pravzaprav popolnoma vseeno, ali si bomo omislili samo en računalnik, ki bo hkrati tudi spletni strežnik, ali pa bomo za slednje uporabili namenski računalnik, ki bo ždel nekje pod mizo. Le usmerjevalniku moramo povedati, naj vrata 80 prenaša na pravega.

V usmerjevalniku je treba do računalnika "spustiti" promet skozi vrata številka 80.

S tem smo dosegli, da zahteva, ki jo nekdo (kjerkoli v internetu) sproži z vpisom naše domene v spletni brskalnik, dejansko "prileti" do našega domačega računalnika, ki smo mu zdaj že gotovo zaupali 24-urno delovanje. Težava? Naš računalnik še ni "naučen", da na take zahteve odgovarja, oz. če smo natančni - nima še nameščene ustrezne programske opreme.

Spletni strežnik

Privzemimo, da sodimo v tisto velikansko večino, ki uporablja Microsoftova Okna - med katerimi spletnimi strežniki lahko izbiramo? Najprej je tu seveda v sama Okna vgrajen IIS (Internet Information Server) oz. Microsoftov spletni strežnik. Za začetnike je idealen, saj so vse nastavitve dostopne prek enostavnega uporabniškega vmesnika. Žal je različica v osebnih Oknih (Windows XP) nerazumljivo in preveč omejena, ker v nasprotju z različico v strežniških Oknih (Windows 2003 Server) dovoljuje strežbo le desetim hkratnim povezavam. To se pravzaprav ne sliši tako zelo slabo, tudi za domači spletni strežnik ne, dokler ne ugotovimo, da vsak element na spletni strani "šteje" eno povezavo. Če imamo spletno stran z množico fotografij, bodo uporabniki (pa četudi bodo takrat "na liniji" sami) namesto sliki dobivali oznake napak, ki bodo sporočale, da tega elementa na spletni strani ni bilo mogoče doseči... Nujno bo torej treba poseči po alternativni rešitvi.

Microsoftov spletni strežnik IIS je zelo enostavno uporabljati, vendar je v osebni različici omejen do neuporabnosti.

Edina smiselna alternativna rešitev je hkrati danes daleč najbolj uporabljana rešitev na svetu (68 % vseh strežnikov!) - odprtokodni spletni strežnik Apache (www.apache.org). Gotovo ste že slišali zanj in ga avtomatsko povezovali z operacijskimi strežniki Unix. Vendar pa zelo dobro deluje tudi v Oknih, če množice drugih operacijskih sistemov niti ne omenjamo. Apache je izreden spletni strežnik, ki s svojimi zmogljivostmi gotovo bistveno presega to, kar želimo doseči na svojem malem domačem spletnem strežniku, pa vendar ni nobenega razloga, da bi se mu zaradi tega izognili. Z viri je namreč zelo varčen, zato računalnika z njegovo namestitvijo ne bomo skoraj nič obremenili.

Za tipičnega uporabnika Oken vseeno nastopi težava - sorazmerno kompleksno upravljanje programa. Apache je namreč tipičen odprtokodni strežniški program, ki na uporabniške vmesnike in šminko ne da kaj dosti (oz. nič) in se v popolnosti opira na tisto, kar je zapisano (smo zapisali) v nastavitveni datoteki httpd.conf. Navodila za uporabo strežnika Apache so tako pravzaprav le uporabniški priročnik za množico (oz. kar MNOŽICO!) ukazov in nastavitev, ki jih lahko sprejme ta nastavitvena datoteka. Ne bo šlo drugače - vsaj nekoliko se bo treba zatopiti vanje ali pa vsaj v httpd.conf, kjer so najpomembnejše nastavitve že vpisane in le zakomentirane, tako da jih lahko hitro vklopimo.

Apache se v Oknih "pokaže" le z ikonico, ki omogoča ustavitev in vnovični zagon spletnega servisa.

K sreči je vsaj namestitev strežnika okensko trivialna - iz spleta snamemo zadnjo različico (čeprav so še vedno na voljo "legendarne" različice serije 1.x, priporočamo namestitev novejše različice 2.x) in jo namestimo. Vprašanja ob namestitvi obsegajo bolj ali manj le ime domene, ki jo bo strežnik stregel, in številko vrat TCP, na katerih naj posluša (privzeto kar 80). Po namestitvi je vse, kar v Oknih vidimo "apačevskega", ikona v desnem delu opravilne vrstice, ki omogoča, da streženje ugasnemo in spet poženemo. To lahko postorimo tudi neposredno - prek programa Services na Nadzorni plošči.

Po namestitvi Apache streže privzete strani, zato bo treba hiter skok v datoteko httpd.conf.

Ko je Apache nameščen, že avtomatsko tudi deluje, vendar zagotovo ne streže tistih strani, ki smo mu jih pripravili mi, temveč svoje, privzete. Potreben bo torej poseg v httpd.conf: poiščemo ukaz DocumentRoot in mu pripišemo imenik, na katerem so naše spletne strani, oz. datoteke HTML. Npr. (katere poševnice uporabimo, je nepomembno):

DocumentRoot "C:/inetpub/wwwroot"

Morda bo koristno vpisati oz. popraviti tudi ukaz, ki pove, katere HTML strani so za Apache privzete (se prikažejo, če v naslovni vrstici neposredno ne zapišemo tudi točno določenega dokumenta HTML). Npr:

DirectoryIndex default.htm index.htm index.html index.php index.html.var page_01.htm

Če želimo streči tudi vsebino imenikov, ki niso podimeniki zgoraj zapisanega osnovnega imenika (wwwroot), lahko uporabimo sklop ukazov za vzpostavitev navideznega imenika. Npr:

Alias /fotografije "c:/fotografije"

<Directory "c:/ fotografije ">

Options Indexes MultiViews

AllowOverride all

Order allow,deny

Allow from all

options indexes

</Directory>

Kaj točno pomenijo nastavitve znotraj sklopa "Directory", za potrebe tega članka ni pomembno, vedno pa se o tem lahko pozanimate v navodilih na www.apache.org.

Lahko se odločimo tudi za nov navidezni strežnik v sklopu obstoječega. Če bi želeli narediti dostopno stran sinko.novak.net (namesto običajne strani novak.net), bo treba ime sinko najprej vpisati v domenski strežnik in mu prirediti IP številko našega strežnika (kot smo zapisali že v prvem delu, bo za to najbolje poprositi registrarja, pri katerem smo kupili domeno in najverjetneje uporabljamo tudi njegove strežnike DNS). Nato pa v http.conf vpisati nekaj takega:

<VirtualHost *>

DocumentRoot "c:\inetpub\wwwroot\sinko"

ServerName sinko.novak.net

</VirtualHost>

In seveda HTML strani našega sinka postaviti v c:\inetpub\wwwroot\sinko.

Včasih je smiselno imeti imenik, na katerem lahko kolegom pustimo določene datoteke, ti pa si jih "snamejo" kar z brskalnikom. Najprej prijavimo navidezni imenik (Alias, glej zgoraj), nato pa dovolimo brskanje po njem. Ko bo uporabnik vpisal njegov naslov (npr. http://novak.net/zacasno), se bodo izpisale (DIR) vse datoteke, ki so v njem (če le tam ne bo tudi privzete datoteke HTML, glej zgoraj). To je sicer (zaradi varnosti!) v celotnem spletnem strežniku prepovedano, "vklopimo" pa tako, da med ukazi, ki stojijo v sklopu "directory" (glej zgoraj), vpišemo:

Options -Indexes

Kaj pa, če želimo določen imenik zaščititi in dovoliti dostop le posvečenim? Apache za to uporablja posebne datoteke .htaccess, ki jih naredimo v imenikih, ki jih želimo zaščititi. V te datoteke lahko zapišemo bolj ali manj vse ukaze, ki jih sprejme sklop /directory v osnovni datoteki httpd.conf, vendar moramo nekatere sklope ukazov posebej dovoliti. Da lahko vanje vpisujemo ukaze, ki omejujejo dostop, moramo v datoteko httpd.conf (najbolje kar v osnovni sklop ukazov "/directory") vpisati:

AllowOverride AuthConfig

Nato pa v dejansko datoteko .htaccess na zaščitenem imeniku:

AuthType Basic

AuthName "Samo za posvecene"

AuthUserFile "c:\program files\apache group\apache2\passwd\passwordi"

Require user priviligirani

S temi ukazi smo zahtevali, da se bo uporabniku ob poskusu dostopa odprlo okno z naslovom "Samo za posvecene", ki bo zahtevalo uporabniško ime in geslo, dovolj dobro pa bo le ime "privilegirani", katerega geslo je shranjeno v zgoraj zapisani datoteki passwordi. Ostane le še težava, kako geslo shraniti v to datoteko. Za to uporabimo program htpasswd, ki je v imeniku BIN naše namestitve Apacheja. Odpremo ukazno okno in vpišemo nekaj takega:

htpasswd.exe -c ../passwd/passwordi priviligirani

Program nas bo povprašal po geslu, ki ga bomo morali še potrditi in to je vse.

In še pozor - po vsaki spremembi v httpd.conf moramo Apache ročno znova zagnati. Če smo se pri vpisovanju kaj zmotili, se strežnik ne bo zagnal in bo treba napako odpraviti.

Znanje, ki smo ga zapisali doslej, popolnoma zadostuje za streženje statičnih strani na našem domačem spletnem strežniku. Ker pa smo uporabili Apache, ki je standard med spletnimi strežniki, je korak do dinamičnih strani zelo preprost - namestitev programskega jezika PHP in zbirke podatkov MySQL. S temi tremi paketi imate v računalniku vse, kar potrebujete za kakršenkoli spletni uporabniški program. Vendar pa to že presega namen tega članka.

Apache nima uporabniškega vmesnika, temveč le nastavitveno datoteko httpd.conf.

V prihodnji številki: beleženje dostopa (Analog)

Naroči se na redna tedenska ali mesečna obvestila o novih prispevkih na naši spletni strani!

Komentirajo lahko le prijavljeni uporabniki

Najbolj brano

  • Google poskrbel, da se telefonov ne bo več splačalo krasti

    Google bo okrepil zaščito pametnih telefonov Factory Reset Protection (FRP), tako da bo ukradene telefone v praksi nemogoče ponovno uporabiti. Že obstoječi Android 15 prinaša nekaj varovalk, novi FRP pa bomo dobili v Androidu 16.

    Objavljeno: 15.5.2025 05:00
  • Štiri leta stari androidni telefoni imajo ranljivost, ki je ne bodo popravljali

    Google je posvaril uporabnike pametnih telefonov Android, naj nujno posodobijo svoje naprave, saj so pravkar zakrpali resno ranljivost, ki se je že izkoriščala. Prizadete so naprave z Androidom 13 (iz leta 2022) in Androidom 14 (2023). Telefoni z Androidom 12 (2021) pa se ne posodabljajo več, zato je priporočljiva zamenjava. Uporabnikov toliko starih telefonov je več sto milijonov!

    Objavljeno: 8.5.2025 07:00
  • Kitajci obrnili hrbet iPhonom

    Kitajski trg pametnih telefonov, ki tudi za zahodne znamke predstavlja izjemno pomemben delež, je letos doživel pravi pretres. Prodaja Applovih iPhonov je na primer padla za 50 odstotkov, podobno se godi tudi drugim tujim znamkam, ki nikoli niso imele zares opaznih deležev. Kitajski potrošniki so namreč začeli čedalje bolj kupovati domače izdelke.

    Objavljeno: 16.5.2025 05:00
  • Način, da vam umetna inteligenca ne bo lagala

    Vsi modeli umetne inteligence halucinirajo, včasih kakšen novejši celo bolj kot starejši, a obstajajo načini za zmanjšanje tega problema. Odpraviti ga za zdaj še ne moremo, lahko pa se mu v veliki meri izognemo, če pravilno sprašujemo. Najnovejša primerjava je pokazala, da je eden preprostejših načinov zahtevati daljše odgovore.

    Objavljeno: 14.5.2025 07:00
  • Anthropic: Ne vemo, kako deluje naša umetna inteligenca

    Ne gre za teorije zarote, temveč nemoč priznavajo tudi najvplivnejši. Izvršni direktor Anthropica Dario Amodei je v eseju, ki ga je objavil na svoji spletnih straneh, priznal, da ne razumejo natančno, kako deluje umetna inteligenca.

    Objavljeno: 8.5.2025 05:00
  • Samsung postaja zvočna velesila

    Samsungova podružnica Harman International bo za 350 milijonov ameriških dolarjev v gotovini kupila avdio oddelek podjetja Masimo, znanega po blagovnih znamkah Sound United

    Objavljeno: 9.5.2025 15:00 | Teme: samsung, zvok
 
  • Polja označena z * je potrebno obvezno izpolniti
  • Pošlji