Π‘ΡΠΊΠΎΠ½ΠΎΠΌΡŒΡ‚Π΅ 15% Π½Π° всСх хостинговых услугах

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ свои Π½Π°Π²Ρ‹ΠΊΠΈ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ скидку Π½Π° любой Ρ‚Π°Ρ€ΠΈΡ„Π½Ρ‹ΠΉ ΠΏΠ»Π°Π½

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠ΄: Skills ΠΠ°Ρ‡Π°Ρ‚ΡŒ
Π ΡƒΠ±Ρ€ΠΈΠΊΠΈ
Linux Администрация

Как Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ хосты Π² Nginx Π½Π° Ubuntu

Настройка Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… хостов Π² Nginx β€” ΠΎΠ΄ΠΈΠ½ ΠΈΠ· самых ΠΌΠΎΡ‰Π½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² размСщСния Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π²Π΅Π±-сайтов Π½Π° ΠΎΠ΄Π½ΠΎΠΌ сСрвСрС, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ с собствСнным Π΄ΠΎΠΌΠ΅Π½Π½Ρ‹ΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ, ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠ΅ΠΉ ΠΈ нСзависимой ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠ΅ΠΉ. Nginx Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ это Ρ‡Π΅Ρ€Π΅Π· Π±Π»ΠΎΠΊΠΈ сСрвСра β€” Π³ΠΈΠ±ΠΊΠΈΠ΅, лСгковСсныС Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚, ΠΊΠ°ΠΊ Π²Π΅Π±-сСрвСр ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π½Π° запросы для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π΄ΠΎΠΌΠ΅Π½Π°.

НСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, управляСтС Π»ΠΈ Π²Ρ‹ Π»ΠΈΡ‡Π½Ρ‹ΠΌ ΠΏΠΎΡ€Ρ‚Ρ„ΠΎΠ»ΠΈΠΎ, запускаСтС Π²Π΅Π±-сайты ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ² ΠΈΠ»ΠΈ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ ΠΌΠ½ΠΎΠ³ΠΎΡ‚Π΅Π½Π°Π½Ρ‚Π½ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, это руководство прСдоставляСт ΠΏΠΎΠ»Π½ΠΎΠ΅, Π³ΠΎΡ‚ΠΎΠ²ΠΎΠ΅ ΠΊ использованию Π² production пошаговоС руководство ΠΏΠΎ настройкС Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… хостов Nginx Π½Π° Ubuntu. ΠœΡ‹ рассмотрим структуру Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΉ, ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ Π±Π»ΠΎΠΊΠΎΠ² сСрвСра, Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ сайтов, настройку SSL/HTTPS ΠΈ устранСниС Π½Π΅ΠΏΠΎΠ»Π°Π΄ΠΎΠΊ β€” всё, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΎΡ‚ нуля ΠΊ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΌΡƒ многосайтовому сСрвСру Nginx.

> Π˜Ρ‰Π΅Ρ‚Π΅ Π½Π°Π΄Ρ‘ΠΆΠ½Ρ‹ΠΉ сСрвСр Ubuntu для ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ? ΠŸΠ»Π°Π½Ρ‹ VPS Hosting AlexHost ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ ΠΏΠΎΠ»Π½Ρ‹ΠΉ root-доступ, SSD-Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ ΠΈ ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎΠ΅ Ρ€Π°Π·Π²Ρ‘Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ β€” идСально для этого случая.

ΠŸΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ трСбования

ΠŸΠ΅Ρ€Π΅Π΄ Π½Π°Ρ‡Π°Π»ΠΎΠΌ ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Ρ‹ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ условия:

Nginx установлСн Π½Π° вашСм сСрвСрС

Если Nginx Π΅Ρ‰Π΅ Π½Π΅ установлСн, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π½Π° вашСм сСрвСрС Ubuntu:

sudo apt update
sudo apt install nginx

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ установку ΠΈ ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ слуТба Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚:

sudo systemctl status nginx

Π’Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ active (running) Π² Π²Ρ‹Π²ΠΎΠ΄Π΅. Если Π½Π΅Ρ‚, запуститС Π΅Π³ΠΎ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ:

sudo systemctl start nginx
sudo systemctl enable nginx

Π”ΠΎΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈΠΌΠ΅Π½Π°, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ Π½Π° ваш сСрвСр

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ хост Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π΄ΠΎΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Π΅Ρ‚ΡΡ Π½Π° ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹ΠΉ IP-адрСс вашСго сСрвСра. Π’Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ A записи Π² настройках DNS, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ Π½Π° IP сСрвСра.

> НуТСн Π΄ΠΎΠΌΠ΅Π½? ЗарСгистрируйтС свой Ρ‡Π΅Ρ€Π΅Π· AlexHost Domain Registration ΠΈ управляйтС DNS записями прямо ΠΈΠ· ΠΏΠ°Π½Π΅Π»ΠΈ управлСния.

Для локального тСстирования Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ±ΠΎΠΉΡ‚ΠΈ DNS ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ, ΠΎΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π² Ρ„Π°ΠΉΠ» /etc/hosts (описано Π² Π¨Π°Π³Π΅ 7).

Π’Ρ€Π΅Π±ΡƒΠ΅ΠΌΡ‹Π΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ

Π’Π°ΠΌ Π½ΡƒΠΆΠ½Ρ‹ ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ sudo Π½Π° сСрвСрС Ubuntu для создания Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΉ, рСдактирования Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΈ управлСния слуТбой Nginx.

Π¨Π°Π³ 1: Настройка Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΉ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π²Π΅Π±-сайта

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Π²Π΅Π±-сайт, Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½Π½Ρ‹ΠΉ Π½Π° вашСм сСрвСрС, Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅Ρ‚ΡŒ ΡΠΎΠ±ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ для хранСния Π²Π΅Π±-Ρ„Π°ΠΉΠ»ΠΎΠ². Π’Π°ΠΊΠΎΠ΅ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΡΡ‚ΡŒ Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² ΠΈ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ.

Π’ этом руководствС ΠΌΡ‹ настроим Π΄Π²Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Π΄ΠΎΠΌΠ΅Π½ΠΎΠ²: example1.com ΠΈ example2.com. Π—Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ ΠΈΡ… Π½Π° ваши фактичСскиС ΠΈΠΌΠ΅Π½Π° Π΄ΠΎΠΌΠ΅Π½ΠΎΠ² Π²Π΅Π·Π΄Π΅ Π² тСкстС.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΠΎΡ€Π½Π΅Π²Ρ‹Ρ… Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΉ Π²Π΅Π±-сайтов

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

Π€Π»Π°Π³ -p создаСт всС ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹Π΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ нСобходимости.

НазначСниС ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ³ΠΎ Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Π°

ΠŸΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΡŒΡ‚Π΅ Π²Π»Π°Π΄Π΅Π½ΠΈΠ΅ этими дирСкториями ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ www-data, систСмному ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ, ΠΎΡ‚ ΠΈΠΌΠ΅Π½ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Nginx:

sudo chown -R www-data:www-data /var/www/example1.com/html
sudo chown -R www-data:www-data /var/www/example2.com/html

Π­Ρ‚ΠΎ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ Nginx ΠΈΠΌΠ΅Π΅Ρ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π½Π° Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ для обслуТивания Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΠ· этих Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΉ.

Установка Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΉ

sudo chmod -R 755 /var/www

Π Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ 755 ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π²Π»Π°Π΄Π΅Π»Π΅Ρ† ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΠΎΠ»Π½Ρ‹ΠΉ доступ Π½Π° Ρ‡Ρ‚Π΅Π½ΠΈΠ΅/запись/Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅, Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ Π³Ρ€ΡƒΠΏΠΏΡ‹ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ доступ Π½Π° Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ β€” это умСстно для ΠΏΡƒΠ±Π»ΠΈΡ‡Π½ΠΎ обслуТиваСмого Π²Π΅Π±-ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π°.

Π¨Π°Π³ 2: Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° HTML ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π°

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ хост Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ, создайтС простой index.html Ρ„Π°ΠΉΠ» для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ сайта.

Для example1.com

echo "<h1>Welcome to Example1.com!</h1>" | sudo tee /var/www/example1.com/html/index.html

Для example2.com

echo "<h1>Welcome to Example2.com!</h1>" | sudo tee /var/www/example2.com/html/index.html

Π­Ρ‚ΠΈ страницы-Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΠΈ подтвСрдят, Ρ‡Ρ‚ΠΎ Nginx ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ запросы Π² ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π΄ΠΎΠΌΠ΅Π½Π°.

Π¨Π°Π³ 3: Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ хоста

Nginx Ρ…Ρ€Π°Π½ΠΈΡ‚ Ρ„Π°ΠΉΠ»Ρ‹ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ сайтов Π² /etc/nginx/sites-available/. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ„Π°ΠΉΠ» опрСдСляСт Π±Π»ΠΎΠΊ сСрвСра β€” эквивалСнт Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ хоста Apache Π² Nginx. Π’ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹Π΅ сайты Π·Π°Ρ‚Π΅ΠΌ ΡΠ²ΡΠ·Ρ‹Π²Π°ΡŽΡ‚ΡΡ символичСской ссылкой Π² /etc/nginx/sites-enabled/.

ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ для example1.com

Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Π½ΠΎΠ²Ρ‹ΠΉ Ρ„Π°ΠΉΠ» ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ:

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

Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π±Π»ΠΎΠΊ сСрвСра:

server {
    listen 80;
    listen [::]:80;

    server_name example1.com www.example1.com;

    root /var/www/example1.com/html;
    index index.html index.htm;

    access_log /var/log/nginx/example1.com.access.log;
    error_log  /var/log/nginx/example1.com.error.log;

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

Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚Π΅ ΠΈ Π·Π°ΠΊΡ€ΠΎΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ» (Ctrl+X, Π·Π°Ρ‚Π΅ΠΌ Y, Π·Π°Ρ‚Π΅ΠΌ Enter).

ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ для example2.com

Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Π²Ρ‚ΠΎΡ€ΠΎΠΉ Ρ„Π°ΠΉΠ» ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ:

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

Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π±Π»ΠΎΠΊ сСрвСра:

server {
    listen 80;
    listen [::]:80;

    server_name example2.com www.example2.com;

    root /var/www/example2.com/html;
    index index.html index.htm;

    access_log /var/log/nginx/example2.com.access.log;
    error_log  /var/log/nginx/example2.com.error.log;

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

ОбъяснСниС ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²

ДирСктиваНазначСниС
listen 80ΠŸΡ€ΠΎΡΠ»ΡƒΡˆΠΈΠ²Π°Π΅Ρ‚ входящиС HTTP-соСдинСния Π½Π° ΠΏΠΎΡ€Ρ‚Ρƒ 80
listen [::]:80Π’ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ IPv6 Π½Π° ΠΏΠΎΡ€Ρ‚Ρƒ 80
server_nameΠžΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅Ρ‚, ΠΊΠ°ΠΊΠΈΠ΅ Π΄ΠΎΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈΠΌΠ΅Π½Π° ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ этот Π±Π»ΠΎΠΊ
rootУстанавливаСт ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² β€” Π³Π΄Π΅ хранятся Ρ„Π°ΠΉΠ»Ρ‹ Π²Π΅Π±-сайта
indexΠ£ΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ„Π°ΠΉΠ» ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для обслуТивания ΠΏΡ€ΠΈ запросС ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°
try_filesΠŸΡ‹Ρ‚Π°Π΅Ρ‚ΡΡ ΠΎΠ±ΡΠ»ΡƒΠΆΠΈΡ‚ΡŒ Π·Π°ΠΏΡ€ΠΎΡˆΠ΅Π½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ»; Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ 404, Ссли Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½
access_log / error_logΠžΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ ΠΆΡƒΡ€Π½Π°Π»ΠΎΠ² для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ сайта для Π±ΠΎΠ»Π΅Π΅ ΡƒΠ΄ΠΎΠ±Π½ΠΎΠΉ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ

Π¨Π°Π³ 4: Π’ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… хостов

Nginx Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΡƒΠ΅Ρ‚ сайты, создавая символичСскиС ссылки ΠΈΠ· sites-available Π½Π° sites-enabled. Π­Ρ‚ΠΎΡ‚ Π΄ΠΈΠ·Π°ΠΉΠ½ позволяСт ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Π±Π΅Π· ΠΈΡ… Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎΠΉ Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΠΈ.

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

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ сайта ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ (ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ, Π½ΠΎ рСкомСндуСтся)

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²ΠΌΠ΅ΡˆΠ°Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎ страницы-заполнитСля Nginx ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ Π΅Ρ‘:

sudo rm /etc/nginx/sites-enabled/default

Π’Ρ‹ всСгда ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π΅Ρ‘ ΠΏΠΎΠ·ΠΆΠ΅, пСрСсоздав ΡΠΈΠΌΠ²ΠΎΠ»ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ссылку.

Π¨Π°Π³ 5: ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Nginx

ΠŸΠ΅Ρ€Π΅Π΄ ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΎΠΉ Nginx всСгда провСряйтС Ρ„Π°ΠΉΠ»Ρ‹ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Π½Π° синтаксичСскиС ошибки. ΠΠ΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ настроСнный Ρ„Π°ΠΉΠ» ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡŽ всСх сайтов Π½Π° сСрвСрС.

sudo nginx -t

УспСшная ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Если Π²Ρ‹ Π²ΠΈΠ΄ΠΈΡ‚Π΅ ошибки, Nginx ΡƒΠΊΠ°ΠΆΠ΅Ρ‚ Ρ„Π°ΠΉΠ» ΠΈ Π½ΠΎΠΌΠ΅Ρ€ строки, Π³Π΄Π΅ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Ρ„Π°ΠΉΠ» ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΈ ΠΈΡΠΏΡ€Π°Π²ΡŒΡ‚Π΅ всС ΠΎΠΏΠ΅Ρ‡Π°Ρ‚ΠΊΠΈ ΠΈΠ»ΠΈ ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Ρ‚ΠΎΡ‡ΠΊΠΈ с запятой ΠΏΠ΅Ρ€Π΅Π΄ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ΠΌ.

Π¨Π°Π³ 6: ΠŸΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚Π΅ Nginx для примСнСния ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ

ПослС ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠΉ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚Π΅ ΠΈΠ»ΠΈ пСрСзапуститС Nginx для примСнСния Π²Π°ΡˆΠΈΡ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ:

sudo systemctl restart nginx

Или ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ reload для ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ, которая Π½Π΅ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π΅Ρ‚ Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Π΅ соСдинСния:

sudo systemctl reload nginx

Π¨Π°Π³ 7: Доступ ΠΊ вашим Π²Π΅Π±-сайтам

Если DNS ΡƒΠΆΠ΅ настроСн

Если ваши Π΄ΠΎΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈΠΌΠ΅Π½Π° ΡƒΠΆΠ΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ Π½Π° IP-адрСс вашСго сСрвСра Ρ‡Π΅Ρ€Π΅Π· DNS A записи, просто ΠΎΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π½Π°:

  • http://example1.com
  • http://example2.com

Π’Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ сообщСния "Welcome", ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ создали Π½Π° шагС 2.

Для локального тСстирования (Π±Π΅Π· DNS)

Если Π²Ρ‹ тСстируСтС локально ΠΈΠ»ΠΈ DNS Π΅Ρ‰Π΅ Π½Π΅ распространился, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠΌΠΈΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠΌΠ΅Π½ΠΎΠ², ΠΎΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π² Ρ„Π°ΠΉΠ» /etc/hosts Π½Π° вашСм локальном ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅ (Π² Linux/macOS) ΠΈΠ»ΠΈ C:WindowsSystem32driversetchosts (Π² Windows).

ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ» с ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½Π½Ρ‹ΠΌΠΈ привилСгиями:

sudo nano /etc/hosts

Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ строки, Π·Π°ΠΌΠ΅Π½ΠΈΠ² YOUR_SERVER_IP Π½Π° фактичСский IP-адрСс вашСго сСрвСра:

YOUR_SERVER_IP example1.com www.example1.com
YOUR_SERVER_IP example2.com www.example2.com

Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚Π΅ Ρ„Π°ΠΉΠ» ΠΈ протСстируйтС Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅. ΠŸΠΎΠΌΠ½ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ эти записи послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ваши Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Π΅ DNS записи Π±ΡƒΠ΄ΡƒΡ‚ Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹.

Π¨Π°Π³ 8: Π’ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ HTTPS с Let’s Encrypt (РСкомСндуСтся)

Запуск Π²Π΅Π±-сайтов ΠΏΠΎ простому HTTP большС Π½Π΅ΠΏΡ€ΠΈΠ΅ΠΌΠ»Π΅ΠΌ для производствСнных срСд. HTTPS ΡˆΠΈΡ„Ρ€ΡƒΠ΅Ρ‚ Ρ‚Ρ€Π°Ρ„ΠΈΠΊ ΠΌΠ΅ΠΆΠ΄Ρƒ вашим сСрвСром ΠΈ посСтитСлями, ΡƒΠ»ΡƒΡ‡ΡˆΠ°Π΅Ρ‚ Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³ΠΈ SEO ΠΈ трСбуСтся для соврСмСнных Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°. Let’s Encrypt прСдоставляСт бСсплатныС автоматичСски обновляСмыС сСртификаты SSL/TLS.

> ΠŸΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°Π΅Ρ‚Π΅ ΠΏΡ€Π΅ΠΌΠΈΡƒΠΌ-Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ SSL? AlexHost ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ Π½Π°Π΄Π΅ΠΆΠ½Ρ‹Π΅ SSL Certificates для ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π½ΡƒΠΆΠ½Π° Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Π°Ρ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΈΠ»ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° подстановочных Π·Π½Π°ΠΊΠΎΠ².

УстановитС Certbot

sudo apt install certbot python3-certbot-nginx

ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ ΠΈ установитС SSL-сСртификаты

ЗапуститС Certbot для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π΄ΠΎΠΌΠ΅Π½Π°. Плагин --nginx автоматичСски измСняСт Π²Π°ΡˆΡƒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ Nginx для Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ HTTPS:

sudo certbot --nginx -d example1.com -d www.example1.com
sudo certbot --nginx -d example2.com -d www.example2.com

Π‘Π»Π΅Π΄ΡƒΠΉΡ‚Π΅ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΌ подсказкам. Certbot Π±ΡƒΠ΄Π΅Ρ‚:

  1. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΎ собствСнности Π½Π° Π΄ΠΎΠΌΠ΅Π½ Ρ‡Π΅Ρ€Π΅Π· HTTP-Π²Ρ‹Π·ΠΎΠ²
  2. ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ подписанный сСртификат ΠΎΡ‚ Let’s Encrypt
  3. АвтоматичСски ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π±Π»ΠΎΠΊ сСрвСра Nginx для ΠΏΡ€ΠΎΡΠ»ΡƒΡˆΠΈΠ²Π°Π½ΠΈΡ ΠΏΠΎΡ€Ρ‚Π° 443
  4. ΠΠ°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ HTTP Π½Π° HTTPS

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ автоматичСскоС ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅

Π‘Π΅Ρ€Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚Ρ‹ Let’s Encrypt ΠΈΡΡ‚Π΅ΠΊΠ°ΡŽΡ‚ ΠΊΠ°ΠΆΠ΄Ρ‹Π΅ 90 Π΄Π½Π΅ΠΉ. Certbot устанавливаСт Ρ‚Π°ΠΉΠΌΠ΅Ρ€ systemd для автоматичСского обновлСния. ΠŸΡ€ΠΎΡ‚Π΅ΡΡ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ Π΅Π³ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ:

sudo certbot renew --dry-run

Если ΠΏΡ€ΠΎΠ±Π½Ρ‹ΠΉ запуск Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡΡ Π±Π΅Π· ошибок, ваши сСртификаты Π±ΡƒΠ΄ΡƒΡ‚ автоматичСски ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒΡΡ Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ Ρ€ΡƒΡ‡Π½ΠΎΠ³ΠΎ Π²ΠΌΠ΅ΡˆΠ°Ρ‚Π΅Π»ΡŒΡΡ‚Π²Π°.

Как Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ваш ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π½Ρ‹ΠΉ Π±Π»ΠΎΠΊ сСрвСра

ПослС запуска Certbot ваша конфигурация Π±ΡƒΠ΄Π΅Ρ‚ автоматичСски ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚Π°ΠΊ:

server {
    listen 443 ssl;
    server_name example1.com www.example1.com;

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

    ssl_certificate /etc/letsencrypt/live/example1.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example1.com/privkey.pem;
    include /etc/letsencrypt/options-ssl-nginx.conf;
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;

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

server {
    listen 80;
    server_name example1.com www.example1.com;
    return 301 https://$host$request_uri;
}

УстранСниС распространСнных ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ

Π”Π°ΠΆΠ΅ ΠΏΡ€ΠΈ Ρ‚Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹. Π’ΠΎΡ‚ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ распространСнныС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΈ способы ΠΈΡ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ:

502 Bad Gateway

Π­Ρ‚ΠΎ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Nginx Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ с Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΉ слуТбой (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, PHP-FPM ΠΈΠ»ΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ Node.js). Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ слуТба upstream Π·Π°ΠΏΡƒΡ‰Π΅Π½Π° ΠΈ Ρ‡Ρ‚ΠΎ сокСт/ΠΏΠΎΡ€Ρ‚ Π² вашСй ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΡƒΠΊΠ°Π·Π°Π½Ρ‹ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ.

403 Forbidden

ΠžΠ±Ρ‹Ρ‡Π½ΠΎ это ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° с Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΠΌΠΈ. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎ www-data Π²Π»Π°Π΄Π΅Π΅Ρ‚ ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΉ ΠΏΠ°ΠΏΠΊΠΎΠΉ Π²Π΅Π±-сайта ΠΈ Ρ‡Ρ‚ΠΎ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Ρ„Π°ΠΉΠ»ΠΎΠ² установлСны ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ:

sudo chown -R www-data:www-data /var/www/example1.com
sudo chmod -R 755 /var/www/example1.com

404 Not Found

Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° root Π² Π±Π»ΠΎΠΊΠ΅ server ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ ΠΈ Ρ‡Ρ‚ΠΎ index.html сущСствуСт ΠΏΠΎ этому ΠΏΡƒΡ‚ΠΈ.

ЗагруТаСтся Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ сайт

Если ΠΏΡ€ΠΈ посСщСнии example1.com загруТаСтся содСрТимоС example2.com, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎ:

  • КаТдая Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° server_name ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Π° ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Π°
  • БимволичСскиС ссылки Π² sites-enabled Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹: ls -la /etc/nginx/sites-enabled/
  • Π‘Π°ΠΉΡ‚ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½, Ссли ΠΎΠ½ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΡƒΠ΅Ρ‚

Nginx Π½Π΅ запускаСтся послС измСнСния ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ

ВсСгда запускайтС sudo nginx -t ΠΏΠ΅Ρ€Π΅Π΄ ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΎΠΉ. Π’Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚Π΅ Π²Ρ‹Π²ΠΎΠ΄ ошибок β€” ΠΎΠ½ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° Ρ‚ΠΎΡ‡Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» ΠΈ строку, Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ.

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π»ΠΎΠ³ΠΎΠ²

Π›ΠΎΠ³ΠΈ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ сайта (настроСнныС Π½Π° этапС 3) β€” ваш Π»ΡƒΡ‡ΡˆΠΈΠΉ рСсурс для ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ:

sudo tail -f /var/log/nginx/example1.com.error.log
sudo tail -f /var/log/nginx/example1.com.access.log

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ сообраТСния

Π₯остинг PHP ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ

Если ваши сайты Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π½Π° PHP (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, WordPress, Laravel), Π²Π°ΠΌ потрСбуСтся ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ PHP-FPM ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ fastcgi_pass Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρƒ Π² Π±Π»ΠΎΠΊ вашСго сСрвСра:

location ~ .php$ {
    include snippets/fastcgi-php.conf;
    fastcgi_pass unix:/run/php/php8.1-fpm.sock;
}

ИспользованиС ΠΏΠ°Π½Π΅Π»ΠΈ управлСния

Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ хостами Nginx Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡƒΡŽ строку β€” это ΠΌΠΎΡ‰Π½Ρ‹ΠΉ, Π½ΠΎ Ρ‚Ρ€ΡƒΠ΄ΠΎΡ‘ΠΌΠΊΠΈΠΉ способ ΠΏΡ€ΠΈ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Если Π²Ρ‹ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°Π΅Ρ‚Π΅ графичСский интСрфСйс, рассмотритС VPS с cPanel ΠΎΡ‚ AlexHost ΠΈΠ»ΠΈ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚Π΅ ΠΏΠΎΠ»Π½Ρ‹ΠΉ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΠΏΠ°Π½Π΅Π»Π΅ΠΉ управлСния VPS, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΉΡ‚ΠΈ подходящий Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ для вашСго Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ процСсса.

ΠœΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ свСрх ΠΎΠ΄Π½ΠΎΠ³ΠΎ VPS

По ΠΌΠ΅Ρ€Π΅ роста Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° ΠΎΠ΄Π½ΠΎΠ³ΠΎ VPS ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ нСдостаточно. Для высоконагруТСнных рСсурсоёмких Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… Π½Π°Π³Ρ€ΡƒΠ·ΠΎΠΊ рассмотритС Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° Π½Π° Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ сСрвСры для Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… рСсурсов, ΠΏΠΎΠ»Π½ΠΎΠΉ изоляции оборудования ΠΈ максимальной ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π’Ρ‹ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ настроили Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ хосты Nginx Π½Π° Ubuntu, Ρ‡Ρ‚ΠΎ позволяСт Π²Π°ΡˆΠ΅ΠΌΡƒ сСрвСру ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ нСсколько нСзависимых Π²Π΅Π±-сайтов. Π’ΠΎΡ‚ ΠΊΡ€Π°Ρ‚ΠΊΠΎΠ΅ описаниС Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ достигнуто:

  • Π‘ΠΎΠ·Π΄Π°Π½Ρ‹ ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ Π²Π΅Π±-корня для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π΄ΠΎΠΌΠ΅Π½Π° с ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΌ Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Π΅ΠΌ ΠΈ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΠΌΠΈ
  • Написаны чистыС, Π³ΠΎΡ‚ΠΎΠ²Ρ‹Π΅ ΠΊ производству ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Π±Π»ΠΎΠΊΠΎΠ² сСрвСра с ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΆΡƒΡ€Π½Π°Π»Π°ΠΌΠΈ доступа ΠΈ ошибок
  • Π’ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ хосты с использованиСм ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Π° Π½Π° основС символичСских ссылок Nginx sites-available / sites-enabled
  • ΠŸΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Π° ΠΈ ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π° конфигурация Nginx бСзопасно
  • Π—Π°Ρ‰ΠΈΡ‰Π΅Π½ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ сайт с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ HTTPS с использованиСм бСсплатных сСртификатов Let's Encrypt Ρ‡Π΅Ρ€Π΅Π· Certbot

Π­Ρ‚Π° установка эффСктивна, ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΠ° ΠΈ слСдуСт Π»ΡƒΡ‡ΡˆΠΈΠΌ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ°ΠΌ Nginx. НСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Π΅Ρ‚Π΅ Π»ΠΈ Π²Ρ‹ Π΄Π²Π° сайта ΠΈΠ»ΠΈ Π΄Π²Π°Π΄Ρ†Π°Ρ‚ΡŒ, примСняСтся ΠΎΠ΄Π½Π° ΠΈ Ρ‚Π° ΠΆΠ΅ схСма β€” просто ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΈΡ‚Π΅ процСсс для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠΌΠ΅Π½Π°.

Для достиТСния Π½Π°ΠΈΠ»ΡƒΡ‡ΡˆΠΈΡ… Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚Π΅ эту ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ с быстрой ΠΈ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΠΉ срСдой хостинга. ΠŸΠ»Π°Π½Ρ‹ VPS Hosting AlexHost ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ для Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… Π½Π°Π³Ρ€ΡƒΠ·ΠΎΠΊ Linux, ΠΏΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ с ΠΏΠΎΠ»Π½Ρ‹ΠΌ доступом root ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ круглосуточной тСхничСской ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ β€” обСспСчивая ΠΈΠ΄Π΅Π°Π»ΡŒΠ½ΡƒΡŽ основу для запуска Nginx Π² производствС.