Как да създадете виртуален хост Nginx (известен още като сървърни блокове)
Актуализирано на 15 март 2020 г
Виртуален хост е термин на Apache, но често се използва и от потребителите на Nginx. Правилният термин за Nginx е сървърен блок. И двете думи имат едно и също значение, което е основно характеристиката на възможността да хоствате множество уебсайтове на един сървър. Това е изключително полезно, като се има предвид, че притежавате множество сайтове и не искате да преминавате през дългия (и скъп) процес на настройка на нов уеб сървър за всеки сайт.
В това ръководство ще преминем през трите стъпки за настройка на виртуален хост Nginx на машина с Ubuntu 16.04.
Първата стъпка в този процес е всъщност да създадете и попълните директория за вашия нов сайт. В Nginx всички файлове на сайта на виртуалния хост се съхраняват в директорията /var/www/. Следователно можете да създадете папка в тази директория, наречена testsite.com и да добавите примерен файл, наречен index.php. За да създадете директорията testsite.com, използвайте следната команда:
mkdir /var/www/testsite.comСлед това можете да създадете файла index.html и да добавите малко текст към него, като използвате следната команда:
echo "Здравей свят" > /var/www/testsite.com/index.phpНакрая, уверете се, че сте настроили правилните разрешения за файл, така че Nginx да има достъп до него. За да направите това, използвайте следния фрагмент:
chmod -R 755 /var/www/testsite.comСега, след като създадохте папка на сайта и добавихте примерен файл под /testsite.com, ще трябва да конфигурирате вашия Nginx виртуален хост или сървърни блокове за testsite.com. Конфигурационните файлове на виртуалния хост обикновено се намират в директорията /etc/nginx/sites-available. Може също така да забележите, че вашият сървър има папка /etc/nginx/sites-enabled, където се поставят файлови преки пътища (символни връзки). Можете да използвате папката с активирани сайтове, за да активирате или деактивирате лесно виртуален хост чрез създаване или премахване на символни връзки.
Сега, след като сте намерили папката sites-available, трябва да влезете в тази папка и да създадете конфигурационен файл за виртуален хост за testsite.com. Конфигурационен файл може да бъде създаден от нулата или можете да копирате конфигурационния файл по подразбиране и да направите всички необходими промени. В този случай щяхте да копирате файла по подразбиране, който в момента е в директорията за достъпни сайтове. За да направите това, използвайте следния фрагмент:
cp /etc/nginx/sites-available/default /etc/nginx/sites-available/testsite.com.confСлед това ще трябва да промените съдържанието на testsite.com.conf, за да съответства на пътищата и директориите на вашия новосъздаденият сайт. Пример за barebones Nginx сървърен блок, който е конфигуриран да пренаписва заявки към HTTPS и да обслужва Let's Encrypt SSL сертификат, ще изглежда подобно на следното:
сървър {listen 80;server_name testsite.com;rewrite ^ https://testsite.com$request_uri? постоянен;} сървър {слушайте 443 ssl http2; root /var/www/testsite.com;location / {try_files $uri /index.php?$args;}location ~ \.php$ {try_files $uri =404;fastcgi_split_path_info ^(.+\.php)(/. +)$;fastcgi_pass unix:/run/php/php7.0-fpm.sock;fastcgi_index index.php;include fastcgi_params;}}След като приключите с редактирането на вашия виртуален хост файл, не забравяйте да запазите файла . След това ще трябва да създадете символна връзка в активирани сайтове към новосъздадените виртуални хост файлове на nginx в папката sites-available:
ln -s /etc/nginx/sites-available/testsite.com.conf /etc/nginx/sites-enabled/testsite.com.confНакрая рестартирайте Nginx със следната команда:
service nginx restartВашият виртуален хост файл вече трябва да е правилно конфигуриран за новата ви настройка. Разбира се, има много модификации, които могат да бъдат направени, като добавяне на поддръжка за кеширане на браузъра или поддръжка на CORS, въпреки че примерът по-горе трябва да е достатъчен, за да започнете. След като сте дефинирали правилно вашите DNS настройки на ниво уеб хост (или който и да е доставчик на DNS услуги, който използвате), вече трябва да имате достъп до сайта си директно, като въведете домейна в уеб браузър.
Алтернативно, ако все още не сте конфигурирали настройките на DNS или просто не искате сайтът все още да работи, можете да промените хост файла на вашия компютър. За да направите това, използвайте следната команда в CLI на вашия компютър
vi /etc/hostsСлед това добавете IP адреса на вашия действителен сървър, последван от името на домейна, което конфигурирате, например:
# Virtual Hosts Local Test1.2.3.4 testsite.comСега трябва да можете да запазите файла и да получите достъп до него от уеб браузър.
Виртуалните хостове или сървърни блокове на Nginx са чудесен начин за добавяне на допълнителни уебсайтове към същия първоначален сървър. Броят на възможностите за конфигурация за даден сайт е почти безкраен, когато започнете да модифицирате конфигурационния файл на виртуалния хост, за да отговаря на вашите специфични нужди на вашия сайт.
PREV: Какво представлява моделът клиент-сървър? - Определение от WhatIs.com
NEXT: Общ преглед на клиент-сървър - Научете уеб разработка | MDN