<
  • Главная
Статьи

Як встановити Nginx в Ubuntu 18.04

  1. Вступ
  2. перед установкою
  3. Крок 1 - Установка веб-сервера Nginx
  4. Крок 2 - Налаштування файрвола
  5. Крок 3 - Перевірка роботи веб-сервера
  6. Крок 4 - Управління процесом Nginx
  7. Крок 5 - настроювання, адміністрування серверних блоків (рекомендується)
  8. Крок 6 - Важливі файли і директорії Nginx
  9. контент

Попередня версія керівництва була написана Джастіном Еллінгвудом .

Вступ

Nginx є одним з найпопулярніших веб-серверів в світі, його використовують для хостингу найбільших і навантажених сайтів в Інтернеті. Nginx в переважній більшості випадків менш вимогливий до ресурсів, ніж Apache; його можна використовувати як в якості веб-сервера, так і в якості зворотного проксі-сервера (reverse proxy).

У цьому керівництві ми розглянемо процес установки Nginx на ваш сервер з Ubuntu 18.04.

перед установкою

Перед тим, як почати слідувати описаним в цій статті кроків, переконайтеся, що у вас є зазвичай не-рутовий (non-root) користувач з привілеями sudo. Дізнатися, як налаштувати такого користувача на вашому сервері, можна з статті про первинну налаштування сервера на Ubuntu 18.04 .

Після того, як ви створили такого користувача, зайдіть на сервер використовуючи його логін і пароль. Тепер ви готові слідувати інструкції, наведені в цій статті.

Крок 1 - Установка веб-сервера Nginx

Nginx доступний в стандартних репозиторіях Ubuntu, тому ми можемо використовувати менеджер пакетів apt для його установки.

Оскільки ми збираємося використовувати apt в перший раз в ході цієї сесії, почнемо з поновлення локального списку пакетів. Далі встановимо nginx:

  • sudo apt update
  • sudo apt install nginx

В результаті виконання цих команд apt встановить Nginx і інші необхідні для його роботи пакети на ваш сервер.

Крок 2 - Налаштування файрвола

Перед тим, як почати перевіряти роботу Nginx, нам необхідно налаштувати наш файрвол для дозволу доступу до сервісу. При установки Nginx реєструється в сервісі файрволу ufw. Тому настройка доступу здійснюється досить просто.

Для виведення налаштувань доступу для додатків, зареєстрованих в ufw, введемо команду:

В результаті виконання цієї команди буде виведений список профілів додатків:


висновок

Available applications: Nginx Full Nginx HTTP Nginx HTTPS OpenSSH

Як видно з цього висновку, для Nginx налаштоване три профілю:

  • Nginx Full: цей профіль відкриває порти 80 (звичайний, не зашифрований веб-трафік) та 443 (трафік шифрується за допомогою TLS / SSL).
  • Nginx HTTP: цей профіль відкриває тільки порт 80 (звичайний, не зашифрований веб-трафік).
  • Nginx HTTPS: цей профіль відкриває тільки порт 443 (трафік шифрується за допомогою TLS / SSL).

Рекомендується налаштовувати ufw таким чином, щоб дозволяти тільки той трафік, який ви хочете дозволити в явному вигляді. Оскільки ми ще не налаштували SSL для нашого сервера, в цій статті ми дозволимо трафік тільки для порту 80.

Зробити це можна за допомогою такої команди:

  • sudo ufw allow 'Nginx HTTP'

Ви можете перевірити зміни ввівши команду:

В результаті повинен відобразитися висновок такого вигляду:


висновок

Status: active To Action From - ------ ---- OpenSSH ALLOW Anywhere Nginx HTTP ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) Nginx HTTP (v6) ALLOW Anywhere (v6)

Крок 3 - Перевірка роботи веб-сервера

Після завершення процесу установки Ubuntu 18.04 запустить Nginx автоматично. Таким чином веб-сервер уже повинен бути запущений.

Ми можемо переконатися в цьому виконавши наступну команду:


висновок

● nginx.service - A high performance web server and a reverse proxy server Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled) Active: active (running) since Fri 2018-04-20 16:08:19 UTC; 3 days ago Docs: man: nginx (8) Main PID: 2369 (nginx) Tasks: 2 (limit: 1153) CGroup: /system.slice/nginx.service ├─2369 nginx: master process / usr / sbin / nginx - g daemon on; master_process on; └─2380 nginx: worker process

Як видно з висновку вище, сервіс запущений і працює. Проте, переконаємося в його повній працездатності шляхом запиту веб-сторінки.

Для цього ми можемо перевірити, чи відображається веб-сторінка Nginx, доступна за замовчуванням при введенні доменного імені або IP адреси сервера. Якщо ви не знаєте публічного IP адреси сервера, ви можете знайти цей IP адреса декількома способами.

Спробуйте набрати цю команду в терміналі вашого сервера:

  • ip addr show eth0 | grep inet | awk '{print $ 2; } '| sed 's /\/.*$//'

В результаті буде виведено кілька IP адрес. Спробуйте вставити кожен з них в браузер.

Іншим способом визначити свій IP адреса буде перевірка, як ваш сервер видно з Інтернету:

Наберіть отриманий IP адреса або доменне ім'я в вашому веб-браузері.

http: // IP_адрес_вашего_сервера

Ви повинні побачити сторінку Nginx за замовчуванням.

Якщо ви бачите подібну сторінку в своєму браузері, ви успішно встановили Nginx.

Крок 4 - Управління процесом Nginx

Тепер, коли Nginx встановлений і ми переконалися в його працездатності, ознайомимося з деякими базовими командам для управління нашим веб-сервером.

Для зупинки веб-сервера використовуйте команду:

  • sudo systemctl stop nginx

Для запуску зупиненого веб-сервера наберіть:

  • sudo systemctl start nginx

Для перезапуску веб-сервера можна використовувати наступну команду:

  • sudo systemctl restart nginx

Якщо ви вносите зміни в конфігурацію Nginx, часто можна перезапустити його без закриття з'єднань. Для цього можна використовувати наступну команду:

  • sudo systemctl reload nginx

За замовчуванням Nginx налаштований на автоматичний старт при запуску сервера. Якщо така поведінка веб-сервера вам не потрібно, ви можете відключити його за допомогою такої команди:

  • sudo systemctl disable nginx

Для повторного включення запуску Nginx при старті сервера введіть:

  • sudo systemctl enable nginx

Крок 5 - настроювання, адміністрування серверних блоків (рекомендується)

При роботі з Nginx серверний блоки (аналог віртуальних хостів в Apache) використовуються для інкапсуляції налаштувань сайтів і дозволяють хостити більше одного домену на сервері. Ми розглянемо настройку серверних блоків на прикладі example.com, але вам буде необхідно замінити цей домен своїм реальним доменним ім'ям. Дізнатися більше про налаштування доменних імен в DigitalOcean ви можете з нашого керівництва Введення в DNS DigitalOcean .

Nginx для Ubuntu 18.04 вже налаштований для підтримки одного серверного блоку, який налаштований на показ документів з директорії / var / www / html. Незважаючи на те, що це працює для одного сайту, це не дуже зручно для хостингу декількох сайтів. Замість того, щоб змінювати / var / www / html створимо нову структуру директорій всередині / var / www / для нашого сайту example.com. Директорію / var / www / html залишимо без змін, її вміст буде відображатися, якщо клієнтські запити не підходять для відображення інших налаштованих на сервері сайтів.

Створимо директорію для example.com наступною командою, використовуючи прапор -p для створення будь-яких необхідних батьківських директорій:

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

Далі налаштуємо права доступу для створеної директорії для поточного користувача, використовуючи змінну оточення $ USER:

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

Тепер права повинні для кореневої директорії бути налаштовані правильним чином за умови, що ви не міняли своє значення umask. На всяких випадок ми можемо переконатися в цьому командою:

  • sudo chmod -R 755 / var / www / example.com

Далі створимо сторінку index.html в nano або будь-якому іншому текстовому редакторі:

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

Додамо в файл наступний HTML:

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

<Html> <head> <title> Welcome to Example.com! </ Title> </ head> <body> <h1> Success! The example.com server block is working! </ H1> </ body> </ html>

Збережіть і закрийте файл.

Для того, щоб Nginx міг віддавати цей контент, нам необхідно налаштувати серверний блок. Замість того, щоб редагувати існуючий файл конфігурації серверного блоку, створимо новий файл для нашого сайту - / etc / nginx / sites-available / example.com:

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

Скопіюйте наступний текст налаштувань серверного блоку в створений файл:

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

server {listen 80; listen [::]: 80; root / var / www / example.com / html; index index.html index.htm index.nginx-debian.html; server_name example.com www. example.com; location / {try_files $ uri $ uri / = 404; }}

Зверніть увагу на те, що ми змінили конфігурацію root на адресу нашої нової директорії, а server_name на наше доменне ім'я.

Тепер активуємо файл шляхом створення посилання на нього в директорії sites-enabled, яку Nginx перевіряє при старті:

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

Тепер два серверних блоку активовані і налаштовані для відповіді на підставі своїх директив listen і server_name (ви можете дізнатися більше про те, як Nginx обробляє ці директиви ось тут ):

  • example.com: Буде відповідати на запити example.com і www.example.com.
  • default: Буде відповідати на будь-які запити на порту 80, які не відповідають іншим налаштованим блокам.

Для того, щоб уникнути потенційної проблеми hash bucket memory, яка може з'явитися при додаванні додаткових імен серверів, нам необхідно змінити одне значення у файлі /etc/nginx/nginx.conf. Відкрийте файл командою:

  • sudo nano /etc/nginx/nginx.conf

Знайдіть директиву server_names_hash_bucket_size і видаліть символ # для того, щоб розкоментувати її:

/etc/nginx/nginx.conf

... http {... server_names_hash_bucket_size 64; ...} ...

Далі перевіримо файли Nginx на наявність синтаксичних помилок:

Збережіть і закрийте файл.

Якщо ніяких проблем не виявилося, перезапустіть Nginx для застосування внесених змін:

  • sudo systemctl restart nginx

Тепер Nginx повинен коректно обробляти ваше нове доменне ім'я. Ви можете переконатися в цьому набравши в браузері http://example.com і побачивши щось на кшталт такого висновку:

Крок 6 - Важливі файли і директорії Nginx

Тепер, коли ми знаємо основні команди для управління веб-сервером, ознайомимося з основними директоріями і файлами.

контент

  • / Var / www / html: веб-контент, який за замовчуванням складається тільки з тестової сторінки Nginx, яку ми бачили раніше, знаходиться в директорії / var / www / html. Шлях до цієї директорії можна налаштувати в файлах конфігурації Nginx.

конфігурація сервера

  • / Etc / nginx: директорія конфігурації Nginx. Всі файли конфігурації Nginx знаходяться в цій директорії.
  • /etc/nginx/nginx.conf: основний файл конфігурації Nginx. Цей файл використовується для внесення змін в глобальну конфігурацію Nginx.
  • / Etc / nginx / sites-available: директорія, в якій зберігаються серверні блоки для кожного сайту. Nginx не використовуватиме конфігураційні файли в цій директорії, якщо вони не мають відповідних посилань в директорії sites-enabled (див. Нижче). Зазвичай всі налаштування серверного блоку здійснюються в цій директорії, а потім сайт активується шляхом створення посилання в іншій теці.
  • / Etc / nginx / sites-enabled /: в цій директорії зберігаються серверні блоки для активованих сайтів. Зазвичай це досягається шляхом створення посилань на конфігураційні профілі сайтів, розташовані в директорії sites-available.
  • / Etc / nginx / snippets: в цій директорії зберігаються фрагменти конфігурації, які можна використовувати при конфігурації будь-яких сайтів. Фрагменти конфігурації, які потенційно можуть бути використані в декількох файлах конфігурації, є прекрасними кандидатами для створення цих фрагментів.

Список сервера

  • /var/log/nginx/access.log: кожен запит до вашого веб-сервера записується в цей файл логу, якщо інше не задано настройками Nginx.
  • /var/log/nginx/error.log: будь-які помилки Nginx будуть записуватися в цей файл.

висновок

Тепер, коли у вас є встановлений і налаштований веб-сервер, ви можете вибирати, який контент віддавати користувачам, і які інші технології ви можете використовувати на додаток до веб-сервера.

Якщо у вас виникає потреба повний стек додатків, рекомендуємо ознайомитися з нашим керівництвом по налаштуванню стека LEMP на сервері з Ubuntu 18.04 .



Новости
  • Виртуальный хостинг

    Виртуальный хостинг. Возможности сервера распределяются в равной мере между всеми... 
    Читать полностью

  • Редизайн сайта

    Редизайн сайта – это полное либо частичное обновление дизайна существующего сайта.... 
    Читать полностью

  • Консалтинг, услуги контент-менеджера

    Сопровождение любых интернет ресурсов;- Знание HTML и CSS- Поиск и обновление контента;-... 
    Читать полностью

  • Трафик из соцсетей

    Сравнительно дешевый способ по сравнению с поисковым и контекстным видами раскрутки... 
    Читать полностью

  • Поисковая оптимизация

    Поисковая оптимизация (англ. search engine optimization, SEO) — поднятие позиций сайта в результатах... 
    Читать полностью