Как да инсталирате Nginx на Ubuntu 20.04 LTS

Пълно ръководство стъпка по стъпка за инсталиране и настройка на уеб сървър на Nginx на система Ubuntu 20.04

Nginx е с отворен код и популярен обратен прокси уеб сървър, достъпен на множество платформи. Софтуерът е разработен от Игор Сисоев като решение на проблема C10K и пуснат за първи път през 2004 г. Проблемът C10K е проблемът с едновременното обработване на десет хиляди клиенти, което не беше доста лесно в началото на 2000-те.

В този урок ще разгледаме как да инсталирате и настроите Nginx на Ubuntu 20.04 LTS.

Предпоставки

Система с инсталиран Ubuntu 20.04 и a sudo потребител. Освен това трябва да нямате друг уеб сървър, като Apache, работещ на порт 80 или 443.

Инсталиране на Nginx

Nginx е наличен в Ubuntu 20.04 хранилище и ап мениджърът на пакети може да се използва за инсталирането му. Така че, за да инсталирате Nginx, отворете терминала с помощта на ctrl+alt+t и стартирайте:

sudo apt update && sudo apt инсталирайте nginx

Инсталацията скоро ще завърши и демонът на Nginx ще стартира автоматично във фонов режим. Така че, за да проверите състоянието на Nginx, изпълнете:

sudo systemctl състояние nginx

След като изпълните горната команда, трябва да получите статус на Nginx като активен (работи) в зелено, както се вижда по-долу.

Конфигуриране на защитна стена на Ubuntu (UFW)

По подразбиране изходящите портове HTTP (80) и HTTPS (443) са затворени в Ubuntu 20.04. Освен това демонът на защитната стена по подразбиране ufw е деактивиран, тъй като всички портове са затворени.

По този начин, за да получите достъп до сървъра Nginx от други системи, ще трябва да активирате ufw и го настройте правилно, за да позволите трафик на порта 80 и 443. Преди да активирате ufw, знайте, че ако настройвате Nginx на отдалечен сървър, първо актуализирайте ufw правила за разрешаване ssh като бягаш:

sudo ufw разреши ssh

Горната команда позволява ssh достъп до отдалечения сървър, без да се разрешава ssh ще бъдете изключени от отдалечения сървър.

След активиране ssh достъп, можете да активирате ufw демон на защитната стена, като изпълните:

sudo ufw активиране

Сега трябва да промените правилата на защитната стена, за да разрешите HTTP и HTTPS портове, така че Nginx да може да обслужва уеб трафик. За да промените правилата, изпълнете:

sudo ufw разреши 'Nginx Full'

Nginx пълен позволява както HTTP, така и HTTPS портове за входящ и изходящ трафик от всички IP адреси.

След това проверете дали правилата са добавени правилно ufw защитна стена, като изпълните командата:

sudo ufw status

Горната команда ще изведе правилата, към които добавихме ufw демон на защитната стена.

Свързване към Nginx сървър

Сега, когато инсталирахме Nginx и конфигурирахме ufw за да разрешите входящ HTTP и HTTPS уеб трафик, трябва да имате достъп до сървъра на Nginx, като използвате IP адреса на сървъра.

Ако не знаете IP адреса на сървъра, използвайте командата по-долу, за да го извлечете лесно.

ip addr покажи eth0 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'

След като получите IP адреса, поставете го в браузъра си и натиснете Enter.

//вашият сървър-ip

Ако всичко е конфигурирано правилно, трябва да можете да видите уеб страницата „Добре дошли в nginx!“.

Nginx файлове и директории

Сега, когато имаме инсталиран Nginx и работи на вашия сървър. Нека да разгледаме някои от важните Nginx файлове и директории, които ще трябва да използвате, за да конфигурирате вашия уебсайт/уеб приложение.

Съдържание на уеб сървъра

Можете да конфигурирате всяко местоположение, което искате да бъде вашата основна директория за вашия сървърен блок. HTML по подразбиране на Nginx директно е /var/www/html, това е мястото, където се намира страницата „Добре дошли“, до която отворихме по-рано.

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

  • /У дома//
  • /var/www/html/
  • /избирам/

Конфигурационни файлове на Nginx

Всички конфигурационни файлове на Nginx се намират в /etc/nginx директория. Нека разгледаме някои от важните файлове, които са ни необходими, за да настроим основен домейн.

  • /etc/nginx/nginx.conf: Този файл съдържа цялата конфигурация, необходима за стартиране на Nginx.
  • /etc/nginx/sites-available/: Тази директория има цялата конфигурация на сървърния блок на домейни, но в момента не са активирани/разгърнати и следователно не са достъпни от клиенти.
  • /etc/nginx/sites-enabled/: Тази директория съдържа в момента активни/разрешени домейни, достъпни от клиенти. За да активираме домейн, трябва да свържем конфигурационния файл на домейна от сайтове-достъпни към сайтове с активиран директория.
  • /etc/nginx/snippets/: В тази директория можем да съхраняваме потенциално многократно използвани сегменти от конфигурация. Спестява много време в производствената среда поради факта, че може да направи сегменти/блокове от конфигурация за многократна употреба.

Дневници на сървъра

Nginx регистрира събитията/дейностите и ги съхранява в регистрационни файлове в /var/log/nginx директория. Nginx регистрира дейности в тези файлове:

  • /var/log/nginx/access.log: Този файл регистрира клиентите, които са имали достъп до Nginx сървъра. Подробностите включват IP адреса на клиента, час и дата, браузър, използван за достъп до сървъра и ОС.
  • /var/log/nginx/error.log: Този файл регистрира грешките, срещнати от Nginx сървъра по време на работа.

И така, в този раздел разгледахме накратко някои от важните Nginx файлове и директории, които са достатъчни, за да започнете.

Настройка на сървърни блокове

Сега, когато имаме някои основни познания за Nginx файловете и сървъра, ние сме готови да настроим собствен сървърен блок. Сървърните блокове са подобни на виртуалните хостове на Apache.

Ще разгледаме как да създадем сървърен блок и да демонстрираме, че ще използваме example.com като домейн в процеса на създаване.

💡 Сменете example.com с името на вашия домейн.

Преди да започнем да конфигурираме сървърни блокове, трябва да създадем директория, която да служи като основна директория за съдържанието на уебсайта. Нека творим /var/www/example.com/html директория за използване на домейн mkdir команда.

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

В -стр опция ще създаде всички необходими родителски директории. Тоест ще създаде example.com родителска директория към html ако не съществува.

Променете собствеността върху директорията с $USER променлива на средата:

sudo chown -R $USER:$USER /var/www/example.com/html

След това създайте прост index.html файл, който ще бъде достъпен, когато посетите домейна, който се конфигурира. Това е само с разяснителна цел.

nano /var/www/example.com/html/index.html

Поставете следното съдържание във файла, който току-що създадохме на сървъра.

  Добре дошли в example.com! 

Йо! example.com е достъпен!

Натиснете ctrl+o за да напишете и запишете index.html файл и след това натиснете ctrl+x за излизане нано редактор.

Сега най-накрая можем да преминем към създаване на сървърен блок, така че Nginx да може да обслужва index.html когато някой потребител отиде на example.com. Така че, за да създадем сървърен блок, трябва да направим конфигурационен файл с име example.com в сайтове-достъпни директория. За целта използваме nano и изпълняваме:

sudo nano /etc/nginx/sites-available/example.com

След това или въведете, или копирайте/поставете следната конфигурация. След това натиснете ctrl+o и въведете, за да напишете и запишете. По същия начин натиснете ctrl+x за да затворите нано редактора.

сървър { слушай 80; слушай [::]:80; server_name example.com www.example.com; root /var/www/example-domain.com/html; индекс index.html; местоположение / {try_files $uri $uri/ =404; } }

Горната конфигурация е подобна на конфигурацията на сървърния блок по подразбиране, променихме корен изявление, за да посочи нашата нова основна директория и промени Име на сървъра към името на нашия домейн. Докато местоположение{} операторът служи като оператор за улавяне на грешки, ако файловете не бъдат намерени и показва грешка 404 на клиента.

След това можем да активираме нашия сървърен блок, така че Nginx да служи example.com уеб страници. За да активираме нашия сървърен блок, трябва да създадем символна връзка на example.com файл от сайтове-достъпни да се сайтове с активиран директория. За да направите това, стартирайте:

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

Ще бъде създадена връзка в с активиран сайт директория и сега example.com трябва да бъде активиран. Сега имаме активирани два сървърни блока на нашия Nginx сървър, който ще отговори на заявка въз основа на слушам и име_на_сервер директиви, запазени в example.com конфигурация на сървърния блок.

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

sudo nginx -t

Сега накрая рестартирайте Nginx, за да приложите промените, като изпълните следната команда:

sudo systemctl рестартирайте nginx

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

Забележка: За да работи горният раздел, ще трябва да настроите свой собствен домейн и да го замените example.com със собственото си име на домейн. Освен това ще трябва да конфигурирате DNS за вашия домейн да сочи към IP адреса на вашия Nginx сървър.

В заключение разгледахме как да инсталирате Nginx, да конфигурирате ufw за да позволи отдалечен достъп до Nginx сървър, свързан с Nginx отдалечено, се запозна с някои основни Nginx файлове и директории и се научи как да настроите сървърен блок.

За да знаете и научите повече за Nginx, може да искате да видите Nginx wiki.

Категория: Linux