#2020-01-23
VPS с повече от един сайт - Nginx и виртуалните хостове

Преди да започнем с кода и стъпките как точно да билднем архитектурата, нека първо да си отговорим на един въпрос:

Какво е Nginx?

Във визитката си той има доста заглавия, общо взето е според случая. Може би едно от най-важните неща, които трябва да знаем е, че е с отворен код. Освен като обикновен уеб сървър, можем да го  ползваме още като базов load balancer, да кешираме страниците на сайта, reverse proxy, ssl termination и други.

Повече от един сайт на нашият сървър?

Както стана ясно, ще използваме nginx, ще ви покажа енкапсулация на конфигурационните файлове, както и как с помощта на nginx да стартирате повече от един сайт на вашият сървър. 

Ако все още нямате инсталиран nginx, можете да го направите с командите по-долу:

sudo apt update
sudo apt install nginx

Nginx идва с една дефолтна конфигурация, която бихте могли да използвате, но ако целта е да ползвате сървъра за повече от един сайт, трябва да отворите директории за различните документи, нещо подобно на това:

sudo mkdir -p /var/www/example1.com/html
sudo mkdir -p /var/www/example2.com/html

За да сме сигурни, че всичко с правата на тази главна директория е наред, можем да използваме следната команда:

sudo chmod -R 755 /var/www

След като ъплоуднем статичните файлове в директориите, които създадохме по-горе, можем да започнем със създаването на сървър блоковете за всеки домейн, един стандартен базов сървър блок би трябвало да изглежда по следния начин:

sudo nano /etc/nginx/sites-available/example.com
server {
    listen 80 default_server;
    listen [::]:80 default_server;

    root /var/www/html;
    index index.html;

    server_name _;

    location / {
            try_files $uri $uri/ =404;
    }
}

След като създадем нашият сървър блок, трябва да обърнем внимание, че той все още не е активиран, нека да го активираме:

sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/

Хубаво е след като запазим настройките да проверим за грешки, а след това и да рестартираме nginx:

sudo nginx -t
sudo systemctl restart nginx

Ако имате уеб базирана аплиакция, която "слуша" на някой порт, също добър вариант би било да отворите сървър блоковете в conf.d директорията на вашият nginx.

Ако търсите скорост nginx е най-добрият вариант, ако сте решили да задълбаете, голям плюс на nginx-a е модулярния дизайн, low memory footprint, базиран е на ивенти, или ако просто искате да ползвате нещо по-модерно.. то това е добър избор!

Ако трябва да направим едно сравнение с другия популярен уеб сървър "Apache", "Nginx" го бие на тестовете за performance с около 2.5 пъти! :)

Ако желаете висококачествени уеб базирани и/или мобилни приложения, нашият екип би могъл да помогне с реализацията на проекта, за да ви направим оферта, моля посетете тази страница