DigitalOcean – VPS – Avagy saját webszerver hogyan?

Az alábbiakban a DigitalOcean VPS (virtual private server) szolgáltatását szeretném bemutatni nektek. Több ismerősöm keresett meg az elmúlt időszakban, hogy az 5$-os VPS szolgáltatásukat próbálgatják és elakadtak a beállításokkal. Így arra gondoltam egy tutorial formájában megmutatom, hogyan tudjátok beállítani az első működőképes webszervereteket ebben a szolgáltatásban. A leírás az alapokról indul és az egyes témakörökben nem megyünk bele a részletekbe. De a végeredmény egy működőképes webszerver lesz.

Hogyan találtam rá? Egy ismerősöm szinte a kezdetek óta használja. Ő hívott meg a szolgáltatásba, amit akkor kipróbáltam és tényleg nem volt rossz. Aztán az idei évben több nagy látogatottságú oldalt is vittem hozzájuk, külön-külön szerverekre. Nem volt gond se a szolgáltatás minőségével, se a backup megoldásukkal, jó a support és az ár sem rossz. Egyetlen negatívumnak talán a kissé “tompa” nameserver-eiket tudnám felhozni.

Teszteléshez nektek most az 5$-os kezdő csomagot javaslom, ehhez tudtok a linkemen keresztül regisztrálva 2 hónapot ingyenesen igénybe venni. Aztán ha upgradelni akartok lehet azt is vagy egyszerűen törlitek a teszt dropleteteket. A link amivel elérheted a 2 havi ingyenes tesztet: DigitalOcean 10$ kupon

1. Hozzuk létre a dropletet.

Regisztráció után ha visszaigazoltál a Create Droplet alatt találod meg, a választható csomagokat.

Nézzük mit tartalmaz az 5$-os csomagjuk:

  • 512MB / 1 CPU
  • 20GB SSD DISK
  • 1TB TRANSFER

Ha kiválasztottad az általad igényelt dropletet, akkor választani kell még egy helyet, hogy melyik szerverfarmjukon szeretnéd létrehozni. Ha Európa, akkor én Amszterdamot javaslom. Utána pedig egy nagyon fontos lépés következik, ki kell választani, hogy mi legyen a szerverünkön. Itt is tennék egy javaslatot, az Applications fül alatt található egy ilyen: LAMP (Linux, Apache, MySQL, PHP) on Ubuntu 14.04 kezdésnek megteszi. Innen számolva körülbelül 1 perc és kész is van a szervered.


2. SSH első lépések

A szerveredet legegyszerűbben SSH-val tudod elérni én a jó öreg és bevált putty-ot használom. Az elérés adataid e-mailban kapod meg. Az online felületükön is rendelkezésre áll egy consol (Access fül alatt), de a használatát nem javaslom. Első bejelentkezés után a rendszer automatikusan kéri, hogy cseréld le a root jelszavát. Én picit tovább mennék, ne a root felhasználóval használjuk az ssh-t, így csináljunk egyből egy új user-t is.

adduser demo

Fontos megjegyezni, hogy a létrehozott user is eléri a szervert az SFTP-vel!!!!

Most adunk neki megfelelő jogosultságokat

visudo

Ezután megjelenik egy config fájl, ahol menjünk le és keressük meg a root ALL=(ALL:ALL) ALL sort, alá kerül az új user-ünk. A végeredmény valami hasonló lesz:

root    ALL=(ALL:ALL) ALL
demo    ALL=(ALL:ALL) ALL

CTRL-X majd egy Y és egy ENTER. Kész is a jogosultság beállítás.

2.1 Állítsuk be az SSH-t az új user-re!!

Futtassuk a következő parancsot, újabb config fájl editálás következik.

nano /etc/ssh/sshd_config

Keressük meg a következő sort: PermitRootLogin yes

Ez alá illesszük be a sajátunkat: AllowUsers demo

Semmi mást ne módosítsunk most, csak CTRL-X utána Y és egy ENTER. Majd teszteljük le az új user-el a hozzáférésünket az SSH-hoz. Egy barátom ezzel a config beállítással zárta ki magát, mivel ő egyből átállította a PermitRootLogin yes-t no-ra és természetesen félre gépelte a user nevet. Fél óra support oldotta meg a helyzetet és elég nagy röhögés.

Amennyiben az új user működik, ismét adjuk ki a nano /etc/ssh/sshd_config parancsot, majd immár tényleg tiltsuk le a root elérést így: PermitRootLogin no

Ezután indítsuk újra az SSH-t.

service ssh restart

Az SSH elkészült, de ne feledjétek, hogy ha olyan utasítást akartok kiadni, amihez kell a root jogosultság, akkor a sudo paranccsal kezdjétek, így: sudo command_to_run

3. MySQL beállítása, biztonságossá tétele

Alaphelyzetben a MySQL már telepítve van, csak egy-két apróságot kell módosítanunk. Elsőnek a a struktúrát hozzuk létre amiben majdan dolgozni tudunk.

sudo mysql_install_db

Ezután pedig végezzük el a biztonsági beállításokat, amelyek elég sok rést és problémát tudnak megoldani. Nem mennék bele a részletekbe, de olvassátok végig y/n kérdéseket fog feltenni, javaslom, hogy mindenhol yes választ adjatok.

sudo mysql_secure_installation

Gyakorlatilag a MySQL beállítása ennyi. Természetesen részletesebben testre lehet szabni, ha valakinek extra igényei lennének, de ebbe nem ez a tutorial keretében mennék bele.

4. Állítsuk be a domain-t

Nos ez egy trükkös rész lesz, mert elsőre elszúrtam én is. Azt gondoltam hogy ha a domain regisztrátoromnál átírom a DNS-t és a nameserver-eket, akkor az szépen menni fog. Hát ez gondolat szinten ment is, de máshogy se. Így a tapasztalatomat fogom leírni erről és azt, hogy hogyan működött.

Első lépésnek a domain regisztrátorunknál keressük meg a DNS szerkesztése opciót, majd kezdjük szerkeszteni (GoDaddy képeket használok, talán ők a legnagyobbak) az A rekordot és irányítsuk át a kapott IP-re az alábbi kép szerint:

A rekord átírányítása

A rekord átirányítása

Ezután a settings fülön keressük meg a nameserver megváltoztatása opciót, majd adjuk hozzá a DigitalOcean nameservereit (ns1.digitalocean.com és ns2.digitalocean.com) az alábbi szerint:

nameserver-csere

Nameserver csere

Most jön a trükkös része és az amit igazából nem teljesen értek, hogy miért szükséges. A DigitalOcean weboldalán az adminisztrációs felületen találtok egy olyat, hogy DNS, azon belül pedig egy ADD DOMAIN gombot. Itt állítsátok be a domain neveteket, www nélkül valamint a kapott IP-t és hogy melyik dropletre fog kerülni. Utána érdemes felvenni egy CNAME rekordot úgy, hogy az első rublikába www a másodikba pedig egy @ kerüljön. A végeredmény valami hasonló lesz:

DigitalOcean DNS

DigitalOcean DNS

Ezzel kész is vagyunk, most már csak várni kell. Általában 15-30 percet, de volt hogy 1 órát is.


 5. Készüljünk fel több domainre

Ez akkor hasznos, ha egy VPS-en több weboldalt szeretnénk futtatni, de szerintem akkor sem egy rossz ötlet, ha normálisan el akarjuk különíteni a weboldalunkat. Ez már nem kötelező, hiszen a fentiek után már a VPS-re mutat a domain és az sftp-vel simán be is tudunk jelentkezni!

Először hozzuk létre a kérdéses mappát, én a következő struktúrát javaslom:

sudo mkdir -p /var/www/example.com/public_html

Adjunk jogosultságokat:

sudo chown -R $USER:$USER /var/www/example.com/public_html
sudo chmod -R 755 /var/www

Érdemes valami egyszerű index.html-t feltölteni a frissen elkészült mappánkba, hogy majd láthassuk is az eredményt. Hozzuk létre a virtual host fájlunkat, majd nyissuk meg szerkesztésre (root jelszót fog kérni):

sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/example.com
sudo nano /etc/apache2/sites-available/example.com

Adjuk hozzá, egészítsük ki a következő sorokkal:

DocumentRoot /var/www/example.com/public_html

CTRL-X egy Y és egy ENTER. Ezután aktiváljuk a hostot, majd indítsuk újra az apache-ot:

sudo a2ensite example.com
sudo service apache2 restart

Manuális beállítás esetén a fentieket, domainenként el kell végezni, de akár egyszerre több domaint is rögzíthetsz így. Ugye milyen király a Cpanel ? 🙂 Természetesen ISPconfig-ot támogatnak alapból is, de ennek beállítása majd egy következő cikkbe fér bele. Aki eddig kitartott annak mostanra kell hogy legyen egy működő webszervere 5 teljes dollárért havonta és akár másra is használhatja nem csak weboldalak üzemeltetésére.

Update!

 6. Swap beállítása

Ha erőforrás igényesebb alkalmazást, weboldalt telepítünk érdemes lehet beállítani a Swap-ot. Ezzel egy kis plusz erőforráshoz juthatunk. Először is ellenőrizzük le, hogy van-e teendőnk vele, egyes beállítások esetén automatikusan beállítják a számunkra.

free -m

Ha ezt látjátok, akkor bizony lesz dolgunk:
            total       used       free     shared    buffers     cached
Mem:          3953        154       3799          0          8         83
-/+ buffers/cache:         62       3890
Swap:            0          0          0

Akkor ugorjunk is neki, hogy mielőbb beállíthassuk a swap-ot (1 GB):

sudo fallocate -l 1G /swapfile
ls -lh /swapfile
valami ilyesmi lesz az eredmény: -rw-r--r-- 1 root root 1.0G Apr 28 17:19 /swapfile

Ezután engedélyezzük a swap file-t:

sudo chmod 600 /swapfile

ls -lh /swapfile
Eredménye: -rw------- 1 root root 1.0G Apr 28 17:19 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile

Ha kiadjuk a sudo swapon -s parancsot immár nem 0 lesz a swap-fájl mérete. Következhet egy kis editálás:

sudo nano /etc/fstab
a szerkesztésre váró fájlunk tetejéhez adjuk a következőt: /swapfile   none    swap    sw    0   0

CTRL-X, egy Y és ENTER. Következzen a swappiness és a pressure beállítása:

sudo sysctl vm.swappiness=10
sudo nano /etc/sysctl.conf
a szerkesztésre váró fájlunk tetejéhez adjuk a következőt: vm.swappiness=10

CTRL-X, egy Y és ENTER.

sudo sysctl vm.vfs_cache_pressure=50
sudo nano /etc/sysctl.conf
a szerkesztésre váró fájlunk tetejéhez adjuk a következőt: vm.vfs_cache_pressure = 50

CTRL-X, egy Y és ENTER és készen is vagyunk.

You may also like...