Установка nginx ubuntu 16.04

На даний момент найбільшу популярність набрали два веб-сервера. Це Apache і Ngnix. У кожного з них є свої плюси і мінуси. Apache був розроблений ще в 1995 році і при його розробці враховувалися не всі можливі потреби користувачів, він споживає багато пам`яті і ресурсів системи, зате він простий в налаштуванні. Nginx був розроблений трохи пізніше в 2002 році вже з огляду на помилки Apache і орієнтуючись на максимальну продуктивність.

Відео: Install + Running Phpmyadmin on nginx (Ubuntu 16.04)

Ми не будемо детально вникати в плюси і мінуси цих обох веб-серверів. У кожного з них своя область застосування. У цій інструкції буде розглянута установка Nginx Ubuntu 16.04. Хоча я буду говорити про Ubuntu 16.04, всі дії підійдуть і для інших дистрибутивів. Налаштування Nginx скрізь однакова, тільки команда установки відрізняється.

установка компонентів

Насамперед потрібно встановити сам веб-сервер в систему. Програма є в офіційних репозиторіях, але її версія вже трохи застаріла, тому якщо хочете найновішу версію, потрібно додати PPA:

Відео: Ubuntu 16.04 NGiNX + PHP7 + Wordpress in unter 12 Minuten (inkl. MySQL)

$ Sudo apt update

І встановлюємо ngnix:

$ Sudo systemctl enable nginx

Якщо ви вже зараз відкриєте браузер, то побачите що працює nginx, але нам належить його ще налаштувати.

nginx1

Налаштування Nginx Ubuntu

Налаштування Nginx Ubuntu набагато складніше ніж Apache. Тут ми не будемо розглядати всі опції і можливості програми, а поговоримо лише про основне. Є різні конфігурації, в яких Nginx використовується в якості проксі сервера, а основний сервер Apache, але нас це цікавити не буде. Нам потрібна установка Nginx як самостійного веб-сервера.

Налаштування Nginx сильно відрізняються тут є тільки один основний файл конфігурації і файли для віртуальних хостів. Налаштування з кожної директорії, як в Apache не підтримується.

  • /etc/nginx/nginx.conf - головний файл конфігурації
  • / Etc / nginx / sites-available / * - файли конфігурації для віртуальних хостів, простіше кажучи для кожного сайту.
  • / Etc / nginx / sites-enabled / * - файли конфігурації активованих сайтів.



Насправді файли конфігурації для віртуальних хостів читаються тільки з директорії sites-enabled, але тут міститися посилання на sites-available. Така система була придумана, щоб дати можливість відключати на час ті чи інші сайти, які не стираючи їх конфігурацію. Всі інші файли містять тільки оголошення змінних і стандартні настройки, які змінювати не потрібно. Що ж стосується nginx.conf, то в нього включаються всі файли з sites-enables, а тому вони можуть містити всі точно такі ж інструкції. А тепер давайте розглянемо головний файл конфігурації:

глобальні опції
events {}
http {
server {
location {}
}
server {}
}
mail {}
  • глобальні опції відповідають за роботу всієї програми.
  • events - ця секція містить настройки для роботи з мережею.
  • http - містить налаштування веб-сервера. Повинна містити секцію servier для тонкої настройки кожного сайту.
  • server - в цій секції міститься настройка кожного розміщеного на веб-сервері сайту.
  • location - секція location може перебувати тільки усередині секції server і містить настройки тільки для певного запиту.
  • mail - містить настройки поштового проксі.

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

параметр значення дополнітельное_значеніе ...-

Рядок повинен обов`язково закінчуватися ";", а все відкриті дужки {повинні бути закриті.

Тепер, коли ви трохи вивчили глобальну структуру, можна переходити до розгляду самих параметрів. Глобальних опцій не так вже й багато:

  • user - користувач, від імені якого буде працювати програма.
  • worker_processes - встановлює скільки процесів потрібно запускати для паралелізації роботи програми, потрібно запускати не більш процесів, ніж у вас є ядер. Можна встановити параметр auto і тоді програма визначить це число сама.
  • pid = Файл pid програми.
  • worker_rlimit_nofile - вказує максимальну кількість файлів, які може відкрити програма. Розраховується як worker_processes * worker_connections * 2.



З глобальними опціями закінчили, їх було не так багато і вони не такі цікавіше. Куди цікавіше в плані оптимізації опції з секції events:

  • worker_connections - кількість з`єднань, які програма може обробляти одночасно на одному процесі. Якщо помножити worker_process на цей параметр, то ми отримаємо максимальну кількість користувачів, які можуть підключитися до сервера одночасно. Рекомендується встановлювати значення від 1024 до 4048.
  • multi_accept - дозволити приймати багато підключень одночасно, встановіть параметр on або off.
  • use - спосіб роботи з мережевим стеком. За замовчуванням використовується poll, але для Linux ефективніше використовувати epoll.

Далі переходимо найголовнішою секції - http. Тут опцій набагато більше:

  • sendfile - використовувати метод відправки даних sendfile. Значення on.
  • tcp_nodelay, tcp_nopush - відправляти заголовки і початок файлу одним пакетом. Значення on.
  • keepalive_timeout - затримку читання, перед тим як keepalive з`єднання буде розірвано, за замовчуванням 65, але можна зменшити до 10 секунд.
  • keepalive_requests - максимальну кількість keepalive з`єднань від одного клієнта, рекомендовано 100.
  • reset_timedout_connection - розривати з`єднання після тайм-ауту. Значення on.
  • open_file_cache - кешувати інформацію про відкриті файли. Рядок настройки виглядає ось так: open_file_cache max = 200000 inactive = 20s- max - максимальна кількість файлів в кеші, час кешування.
  • open_file_cache_valid - вказує після закінчення якого часу потрібно видалити інформацію з кеша. Наприклад: open_file_cache_valid 30s;
  • open_file_cache_min_uses - кешувати інформацію про файлах, які були відкриті як мінімум вказану кількість разів.
  • open_file_cache_errors - кешувати інформацію про відсутніх файлах, значення on.

Основні параметри розглянули. Ці настройки допоможуть вам отримати велику продуктивність від nginx. Секцію server і location ми розглянемо в налаштуванні віртуальних хостів.

Налаштування стиснення Gzip

Стиснення контенту необхідно, щоб зменшити розмір завантажуваних браузером даних. Це прискорює завантаження сайту, але додає додаткове навантаження на процесор сервера. Щоб включити стиск в секції http потрібно додати параметр:

gzip on

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

  • gzip_min_length - мінімальна довжина сторінки в байтах, при якій потрібно використовувати стиснення, наприклад, 1000 (1 кб)
  • gzip_proxied - чи потрібно стискати проксінг запити, any каже, що потрібно стискати все.
  • gzip_types - типи файлів, які потрібно стискати, наприклад: text / plain application / xml application / x-jаvascript text / jаvascript text / css text / json;
  • gzip_disable "msie6" - в IE 6 стиск не підтримується, тому відключаємо.
  • gzip_comp_level - рівень стиснення, доступні варіанти від 1 до 10. 1 - мінімальне, 10 - максимальне стиснення.

Налаштування віртуальних хостів

Як ви знаєте, на сервері може розміщуватися декілька сайтів. Всі запити приходять на ip сервера, а nginx вже визначає на основі домену який контент потрібно видати. Для того щоб nginx знав що до якого домену відноситься потрібно налаштувати віртуальні хости. Кожен хост прийнято розміщувати в окремому файлі. Налаштування хоста знаходиться в секції server, але оскільки всі файли з sites-enabled імпортуються в секцію http, то логіка структури конфігураційного файлу не порушується.

Розглянемо приклад налаштування:

location = /favicon.ico {
log_not_found off;
access_log off;
}

Заборонити доступ до файлів, що починається з точки:


deny all;
}

Кешувати звичайні файли на 90 днів:

location ~ * ^. + . (ogg | ogv | svg | svgz | eot | otf | woff | mp4 | ttf | rss | atom | jpg | jpeg | gif | png | ico | zip | tgz | gz | rar | bz2 | doc | xls | exe | ppt | tar | mid | midi | wav | bmp | rtf) $ {
access_log off- log_not_found off- expires 90d;
}

Після того, як установка і настройка nginx буде завершена перевіряємо конфігурацію на помилки:

$ Sudo service nginx reloadlocation / basic-staus {
stats_stub;
allow 127.0.0.1
deny all;
}

Статистика буде доступна тільки з локального ip:

Поділися в соціальних мережах:

Схожі
Установка ruby ​​ubuntu 16.04Установка ruby ​​ubuntu 16.04
Що краще nginx або apache 2016Що краще nginx або apache 2016
Установка python 3 ubuntuУстановка python 3 ubuntu
Установка squid в ubuntu 16.04Установка squid в ubuntu 16.04
Установка gnome в ubuntu 16.04Установка gnome в ubuntu 16.04
Установка avidemux в ubuntu 16.04Установка avidemux в ubuntu 16.04
Помилка 403 forbidden nginx 1.4 6 ubuntuПомилка 403 forbidden nginx 1.4 6 ubuntu
Установка telegram ubuntu 16.04Установка telegram ubuntu 16.04
Установка steam в ubuntu 16.04Установка steam в ubuntu 16.04
Установка mysql ubuntu 16.04Установка mysql ubuntu 16.04
» » Установка nginx ubuntu 16.04