Nginx: настройка і установка

Що таке apache, nginx? Призначення, особливості, варіанти налаштувань - це речі, з якими повинен бути ознайомлений кожен веб-розробник, щоб тестувати свої напрацювання.

Про nginx замовимо слово

nginx настройкаДаний інструмент має один головним і декількома робочими процесами. Перший займається читанням і перевіркою конфігурації. Також під його контролем знаходиться управління робочими процесами. Завдання останніх - обробляти запити, що надходять. У nginx застосовується модель, що базується на подіях. Також використовуються механізми, залежні від операційної системи, щоб домогтися ефективного розподілу запитів безпосередньо між робочими процесами. Їх кількість завжди позначено в файлі конфігурації. Значення може бути як фіксованим, так і встановлюватися автоматично, орієнтуючись по числу процесорних ядер, з якими можна працювати. У nginx настройка системи і модулів проводиться за допомогою конфігураційного файлу. Тому, якщо треба щось змінити, то шукати треба саме його. Зазвичай він знаходиться в директиві / etc / nginx (але шлях може змінюватися при використанні інших систем) і має розширення .conf.

Запуск, перезавантаження і логи

встановлення та налаштування nginxДля цього необхідно змусити працювати виконуваний файл. Налаштування nginx-сервера можлива, тільки коли він запущений. Управління здійснюється завдяки викликом виконуваного файлу з параметром -s. Для цього використовуйте такий запис:

nginx -s сигнал

В даному випадку підставляти можна такі команди (повинні надходити від користувача, що запустив інструмент):

  1. Stop. Використовується для швидкого завершення роботи.
  2. Reload. Команда необхідна, щоб перезавантажити конфігураційний файл. Справа в тому, що будь-які зміни не будуть застосовані, поки файл працює. І щоб вони вступили в силу, необхідне перезавантаження. Як тільки буде отримано цей сигнал, головний процес почне перевіряти правильність синтаксичної складової конфігураційного файлу і спробує застосувати наявні там вказівки. У разі невдачі він відкотить зміни і буде працювати зі старими параметрами. Якщо все сталося успішно, то будуть запущені нові робочі процеси, а старим буде надіслано вимогу завершитися.
  3. Quit. Застосовується для плавного завершення роботи. Застосовується, якщо необхідно почекати, поки закінчать обслуговуватися поточні запити.
  4. Reopen. Закрити і відкрити лог-файли.

Використання утиліт

Налаштування процесів може здійснюватися також за допомогою засобів Unix (як приклад буде розглянута утиліта kill). Зазвичай вони використовують механізм відправки процесу сигналу безпосередньо з даними. Пов`язуються вони за допомогою ID. Ці дані зберігаються в файлі nginx.pid. Припустимо, що нас цікавить процес №134. Тоді для плавного завершення нам необхідно відправити наступну інформацію:

kill -s QUIT тисячі шістсот двадцять вісім

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

ps -ax | grep nginx

Тобто, як бачите, при використанні додаткового інструментарію вказується, що йде саме його застосування. А тепер давайте сконцентруємося на тому, як відбувається nginx-настройка.

Структура конфігураційного файлу

настройка nginx сервераУстановка і настройка nginx передбачає роботу з модулями. Вони налаштовуються за допомогою директив, які вказуються в файлі конфігурації. Вони бувають простими і блоковими. Перший тип директив складається з імені та параметрів, які поділяються за допомогою пробілів, а їх кінець вказується крапкою з комою - (-). Блокова має схожу будову. Але в даній директиві замість закінчення розміщується набір додаткових інструкцій, які розміщують в фігурних скобах ({вказівки}). Якщо в них можна розмістити імена і параметри інших процесів, то називаються такі конструкції вже контекстом. Як приклад можна привести http, location і server.

Роздача статичного вмісту

Це одна з найбільш важливих завдань, яке стоїть перед конфігурацією nginx. Під роздачею статистичного вмісту мають на увазі зображення і HTML-сторінки (НЕ динамічні). Припустимо, що нам потрібна разова робота по налаштуванню nix nginx кластера. Чи складно це зробити? Ні, і давайте розглянемо приклад. Перш ніж приступати до нього, необхідно деталізувати умови задачі. Так, залежно від запитів, файли будуть йти з різних локальних каталогів. Так, в / data / www ми маємо HTML-документи. А в каталозі / data / images містяться зображення. Оптимальна настройка nginx в даному випадку вимагає редагування конфігураційного файлу, в якому необхідно налаштувати блок server всередині http. Для підтримки буде використовуватися також два location.

Реалізація: server

разова робота по налаштуванню nix nginx кластераОтже, для початку нам необхідно створити самі каталоги і розмістити в них файли з необхідними розширеннями (в html необхідно додати вміст). Потім відкриваємо конфігураційний файл. У ньому за умовчанням вже є кілька блоків server, які в масі своїй закоментовані. Для найкращого результату застосовуйте, цей процес необхідно виконати по відношенню до всіх складових за замовчуванням. Потім додаємо новий блок server за допомогою такого коду:

http {

server {

}

}

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

Реалізація: location

apache nginx призначення особливості варіанти налаштуваньВизначається всередині server:

location / {

root / data / www-

}



наявність знака "/" необхідно, щоб порівнювати отримані дані і дивитися, чи є така адреса з обробленого запиту тут. Якщо ніяких проблем немає, то вказуємо шлях / data / www до необхідного файлу, що знаходиться в даній локальній системі. Якщо збіг є з кількома блоками, то вибирається той, у якого найдовший префікс. У наведеному прикладі його довжина дорівнює одиниці, тобто використання буде тільки в тому випадку, якщо немає "конкурентів". Тепер давайте його вдосконалюємо:

location / images / {

root / data-

}

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

server {

location / {

root / data / www-

}

location / images / {

root / data-

}

}

Відео: Install Nginx, PHP-FPM, and MySQL on CentOS for WordPress

Це робочий варіант, який случає стандартний порт №80. Цей сервер без проблем може бути доступний на локальному комп`ютері, якщо пройти за адресою: http: // localhost /. Як же це все буде працювати?

Принцип функціонування прикладу

настройка nginx на локальному комп`ютеріОтже, коли прийдуть запити, що починаються з с / images, то сервером файли з відповідного каталогу будуть відправлятися користувачеві. При його відсутності буде передана інформація, яка вказує на помилку 404. Якщо проводиться настройка nginx на локальному комп`ютері, то при запиті http: //localhost/images/example.jpg нами буде отримано файл, місце розташування якого /data/images/example.jpg. При вказівці одного символу "/" пошук буде проводитися в директорії / data / Але ми тільки змінили конфігурацію. Щоб вона почала працювати, її необхідно перезавантажити. Для цього використовуйте команду nginx -s reload. У разі коли нормальна робота не є можливою, то в файлах error.log і access.log, розташованих в директиві / usr / local / nginx / logs, ви зможете пошукати причину несправностей.

Створення простого проксі-сервера

оптимальна настройка nginxМожна сказати щодо nginx - настройка даного об`єкта є одним з частих застосувань (і досить легким, між іншим). Тут використовується принцип сервера, який приймає запит, а потім здійснює перенаправлення їх до необхідних сайтам. Після цього очікується відповідь від них, який направляє їх до того, хто поставив завдання. Тому давайте розглянемо приклад створення базової точки. Вона буде займатися обслуговуванням запитів користувачів і надавати їм зображення з локального каталогу. Отже, до блоку http додаємо ще один server з таким вмістом:

server {

listen 8080-

root / data / up1-

location / {

}

}

А тепер давайте для вас Не гарячкуй: створюється простий сервер. Він буде прослуховувати порт 8080. Чи не вказати listen, то сервер буде працювати на 80-му. Відображатися будуть всі запити в рамках локальної файлової системи, які спрямовані на каталог / data / up1 (звичайно, його перед цим необхідно буде створити). Для можливості перевірки там необхідно помістити файл index.html. Завдяки розміщенню директиви root в контексті server ми зможемо скористатися location при будь-яких умовах (оскільки, таким чином, знімаються обмеження доступу). Тепер працюємо над створенням проксі-сервера. Для його роботи нам знадобиться директива proxy_pass, для якої будуть вказані протокол, ім`я, а також порт об`єкта як параметри (при локальному підключенні це буде виглядати як http: // localhost: 8080). Вийде такий результат:



server {

location / {

proxy_pass http: // localhost: 8080-

}

location / images / {

root / data-

}

}

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

Відео: Install nginx and php-fpm on CentOS 6.5

location ~. (gif | jpg | png) $ {

root / data / images-

}

Підсумкова конфігурація проксі-сервера виглядає наступним чином:

server {

location / {

proxy_pass http: // localhost: 8080 / -

}

location ~. (gif | jpg | png) $ {

root / data / images-

}

}

Він буде фільтрувати запити, в кінці яких є зазначені розширення, і відправляти їх тому, хто попросив файли. Не забувайте, що при бажанні перевірити файл конфігурації його необхідно буде перезавантажити. І повірте, це найпростіша nginx-настройка. Якщо відкрити конфігураційний файл сервера "Вконтакте" або іншої великої компанії, у них буде коду більше, ніж слів в цій статті.




Увага, тільки СЬОГОДНІ!
Оцініть, будь ласка статтю
Всього голосів: 76