Пълно ръководство стъпка по стъпка за инсталиране и настройка на уеб сървър на 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.