Virtual hostin luominen
Se mikä mielletään domainiksi, on webservereillä nimeltään virtual host. Virtual hostin asetuksissa kerrotaan mm. mihin domainiin se liittyy, missä tiedostot ovat, kuka saa nähdä mitä jne. Joten nyt aletaan luomaan varsinaista asiaa.
Websivujen hakemistot voivat olla missä tahansa, mutta Ubuntussa ne ovat tyypillisesti hakemistossa /var/www. Yleensä tehdään yksi hakemisto lisää domainin nimellä ja sen alla on public_html, joka pitää sisällään sitten varsinaiset sivuston vaatimat tiedostot, kuten vaikka WordPressin. Tehdään hakemistot.
Käytän tästä eteenpäin esimerkkinä aitoa domainia eksis.dev, joten muuta se.
mkdir -p /var/www/eksis.dev/public_html
Virtual hostien määrittelyt ovat Nginxissä hakemistossa /etc/nginx/sites-available
. Virtual hostin nimi saa olla mikä tahansa, mutta usein ne nimetään domainin mukaan – taas kerran selvyyden vuoksi, niin tiedetään mikä on mikäkin. Virtual hostien asetukset, useimmiten puhutaan konffista tai conf-tiedostosta, on tekstitiedosto, joten luominen onnistuu Nanolla:
nano /etc/nginx/sites-available/eksis.dev
Kopioi tämä ja muuta
- eksis.dev – vaihda jokainen, niitä on useampi
- server-lohkon IP-numerot oman serverisi IP-osoitteiksi – huomaa: toisessa on IP:n jälkeen
:443
ja toisessa:80
ja niiden kuuluukin olla; siinä kerrotaan mistä portista websivuille pääsee 192.168.0.1
kuuluu olla kotisi IP-osoite. Saat sen selville esimerkiksi terminaalista komennollacurl -4 icanhazip.com
mutta älä anna sitä ollessasi kirjautuneena serverille, koska silloin se kertoo serverin IP:n. Kirjaudu ensin ulos komennollaexit
ja anna sitten tuo. Toinen tapa on kurkata laitteesi virustorjunnasta, sillä sekin usein kertoo mikä IP-osoitteesi on.
Tallenna.
Nginx pitää kahdessa paikassa tiedot virtual hostista. Ensimmäinen on äsken tehty, jolloin hakemistossa /etc/nginx/sites-available
ovat kaikki virtual hostit, olivat ne aktiivisia tai eivät. Toinen on /etc/nginx/sites-enabled
jossa ovat aktiiviset, linjoilla ja käytössä olevat virtual hostit.
Aidosti hakemistoon sites-enabled
ei tehdä muuta kuin symbolinen linkki. Pikakuvake, jos haluat miettiä asiaa Windows-maailman kautta.
Kun haluat sivuston näkyviin, niin komennat:
ln -s /etc/nginx/sites-available/eksis.dev /etc/nginx/sites-enabled/eksis.dev
Tarkista, että kaikki on pääosin kunnossa:
nginx -t
Sen jälkeen ladataan Nginx uudestaan käyttöön (muistatko latauksen ja uudelleenkäynnistyksen erot, tästä oli alussa juttua…):
systemctl reload nginx
Tarkistetaan, että palomuuri on auki ja domain löytyy. Varsinaista sivusisältöähän ei vielä ole. Jos sinulla on mahdollisuus vain yhteen terminaaliin, niin kirjaudu ulos. Nyt yhteytesi ulkomaailmaan tapahtuvat omasta kotiverkostasi. Anna seuraava komento:
ping eksis.dev
Jos saat pingejä (teksti voi vaihdella, mutta aina täytyy näkyä aika):
root@demo:~# ping eksis.dev PING eksis.dev (134.209.253.188) 56(84) bytes of data. 64 bytes from 134.209.253.188 (134.209.253.188): icmp_seq=1 ttl=64 time=0.022 ms 64 bytes from 134.209.253.188 (134.209.253.188): icmp_seq=2 ttl=64 time=0.054 ms 64 bytes from 134.209.253.188 (134.209.253.188): icmp_seq=3 ttl=64 time=0.073 ms
niin ulkoa pääsee palomuurin läpi ja virtual host löytyy. Kaikki se toimii ainakin vielä kuten kuuluukin.
Saat pingaamisen loppumaan ctrl-C
– tuota ei sitten kannata jättää koputtelemaan vierasta serveriä, sillä se täyttää jatkuvana pingaamisena tietoliikennehäirinnän tunnusmerkit.
Jos haluat virtual hostin pois linjoilta, niin symbolinen linkki katkaistaan eli se pikakuvake poistetaan hakemistosta sites-enabled
:
unlink /etc/nginx/sites-enabled/eksis.dev
systemctl reload nginx