Як встановити 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 install nginx

Встановлення незабаром завершиться, і демон Nginx автоматично запуститься у фоновому режимі. Отже, щоб перевірити стан Nginx, запустіть:

sudo systemctl status 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

Наведена вище команда виведе правила, до яких ми додали 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

The -стр Параметр створить усі необхідні батьківські каталоги. Тобто створить 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 щоб закрити редактор nano.

сервер { listen 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 почне обслуговувати ваш серверний блок зараз, ви можете перейти до //your-domain-name і побачити свою веб-сторінку в прямому ефірі.

Примітка: Щоб наведений вище розділ працював, вам потрібно налаштувати власний домен і замінити його example.com з власним доменним іменем. Крім того, вам доведеться налаштувати DNS для вашого домену, щоб він вказував на IP-адресу вашого сервера Nginx.

На завершення ми розглянули, як встановити Nginx, налаштувати ufw щоб дозволити віддалений доступ до сервера Nginx, віддалено підключений до Nginx, ознайомився з деякими основними файлами та каталогами Nginx і навчився налаштувати блок сервера.

Щоб дізнатися більше про Nginx, ви можете переглянути вікі Nginx.

Категорія: Linux