Info
Web-palvelin on tietokone, joka pitää sisällään erilaisia tiedostoja, joita se jakaa asiakkailleen käyttäen HTTP-protokollaa (Hypertext Transfer Protocol). Jotta voisimme aloittaa laite-internetin (HTML5-, JavaScript- ja Node.js-koodausta) opiskelun, tarvitsemme oman web-palvelimen, web-server.
RasPi laajentuu web-palvelimeksi, kun siihen asennetaan web-palvelinohjelma. Kun koodaamme muutaman oman www-sivun, opimme perusajatukset HTML-merkkauskielestä. Samalla laajentuu internet-yleissivistys.
Chris Lea:
“Apache is like Microsoft Word:
it has a million options but you only need six.
Nginx does those six things, and it does five of them 50 times faster than Apache”.
NGINX
Kaikille netin käyttäjille tuttu Apache-web-palvelin toimii myös RasPissa, mutta se on liian massiivinen, joten palvelut hidastuvat. Siksi valitsemme kevyemmän, oikeastaan paremman, eli Nginxin.
(lausutaan “engine-x”).
Igor Sysojev julkaisi kehittämänsä Nginx:n syksyllä 2004. Nginx opittiin tuntemaan sen suorituskyvystä, vakaudesta, monipuolisista ominaisuuksista ja helposta konfiguraatiosta. Siksi se nousi nopeasti maailman toiseksi käytetyimmäksi web-palvelimeksi heti Apachen jälkeen. Se hoitelee mm seuraavia saitteja: Netflix, Pinterest, Airbnb, WordPress.com, GitHub ja monta muuta. RasPin kannalta olennaista on vähäinen resurssien tarve.
Nginx perustuu avoimeen lähdekoodiin, joten se on vapaasti käytettävissä. Nginx skaalautuu hyvin ja käyttää säästeliäästi muistia. IoT-koodaajan kannalta tärkeää: se toimii hyvin yhteen Node.js:n kanssa. Ja Node.js ohjelmointiin tässä tähdätään.
Nginx ei ole pelkkä web-palvelin. Se hoitelee HTTP/HTTPS-liikenteen, toimii proxynä ja toimii jopa postipalvelimena. Proxy, välityspalvelin eli välipalvelin varastoi ja suodattaa verkossa siirrettäviä tiedostoja.
Miten NGINX toimii?
Nginx on rakenteeltaan modulaarinen; moduuleita voidaan lisätä tai poistaa. Moduulit voivat esim. tuoda käyttöön uusia toimintoja tai parantaa tietoturvaa. Nginxissä on yksi mestari-prosessi, joka delegoi tehtäviä yhdelle tai useammalle työ-prosessille. Työ-prosessien määrä määritellään Nginxin asetustiedostossa. Yksi työ-prosessi voi käsitellä tuhansia sivunlatauspyyntöjä.
NGINX:n asennus
Teemme RasPista web-palvelimen asentamalla siihen Nginx-ohjelmiston jakamaan www-sivuja paikallisverkossamme. Noiden sivujen avulla opiskellaan JavaScriptiä ja muuta.
Ennen Nginxin asennusta ajetaan kaksi päivitysohjelmaa:
Nämä kannattaa tehdä aina kun aloitetaan uuden ohjelman asentaminen.
Avaa RasPin komentotulkki eli LXTerminal ja kirjoita komento:
- joka päivittää pakettihallinnan pakettilistauksen
- joka tutkii mitkä ohjelmat vaativat päivitystä ja hoitaa ohjelmapakettien lataamisen sekä päivittämisen.
Sitten asennetaan Nginx: sudo apt install nginx
Katsotaan minne Nginx-web-serverin hakemisto asentui.
Kaappauskuva RasPin sivulta kertoo kaiken olennaisen. Toimi samoin.
Web-sivujen varasto on siis polussa /var/www/html/.
Asennuksen jälkeen hakemistossa on index.nginx-debian.html tiedosto.
Toinen tapa nähdä minne Nginx perusti web-sivuja varten kansion johon tulemme kopioimaan tekemämme www-sivut ja niiden tarvitsemat tiedostot, kuvat, äänet, videot jne, on avata RasPin tiedostojen hallinta. Silloin avautuu kuvan mukainen näkymä.
Selaimella voidaan luoda yhteys palvelimeen kirjoittamalla osoitekenttään Raspberry Pi:n IP-osoite.
Jos palvelu on otettu käyttöön onnistuneesti, sivulle pitäisi ilmestyä teksti ”Welcome to nginx!”, kuten näkyy alla olevassa kuvassa.
www-sivuja tehdään lisää ja kopioidaan HTML-tiedostot kansioon /var/www/html/ .