Добрі поради » Інтернет » Nginx: настройка і установка

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

30-04-2016, 17:16
734
0
Що таке apache, nginx? Призначення, особливості, варіанти налаштувань – це речі, з якими повинен бути ознайомлений кожен веб-розробник, щоб тестувати свої напрацювання.

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

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

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

Nginx: настройка і установка
Для цього необхідно змусити працювати виконуваний файл. Налаштування nginx-сервера можлива, лише коли він запущений. Управління здійснюється завдяки викликом виконуваного файлу з параметром –s. Для цього використовуйте такий запис: nginx -s сигнал В даному випадку можна підставляти такі команди (повинні надходити від користувача, що запустив інструмент):
  • Stop. Використовується для швидкого завершення роботи.
  • Reload. Команда необхідна, щоб перезавантажити конфігураційний файл. Справа в тому, що будь-які зміни не будуть застосовані, доки він працює. І щоб вони набули чинності, необхідне перезавантаження. Як тільки буде отримано цей сигнал, головний процес почне перевіряти правильність синтаксичної складової конфігураційного файлу і спробує застосувати наявні там вказівки. У разі невдачі він відкатить зміни і буде працювати зі старими параметрами. Якщо все відбулося успішно, то будуть запущені нові робочі процеси, а старим буде відправлено вимога завершитися.
  • Quit. Застосовується для плавного завершення роботи. Застосовується, якщо необхідно почекати, поки закінчать обслуговуватися поточні запити.
  • Reopen. Закрити і відкрити лог-файли.
  • Використання утиліт

    Налаштування процесів може здійснюватися також за допомогою засобів Unix (в якості прикладу буде розглянута утиліта kill). Зазвичай вони використовують механізм відправки процесу сигналу безпосередньо з даними. Погоджуються вони з допомогою ID. Ці дані зберігаються у файлі nginx.pid. Припустимо, що нас цікавить процес №134. Тоді для плавного завершення нам необхідно надіслати наступну інформацію:
    kill -s QUIT 1628 Припустимо, що ми хочемо переглянути список всіх запущених файлів. Використовуємо для цього утиліту 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

    Nginx: настройка і установка
    Отже, для початку нам необхідно створити самі каталоги і розмістити в них файли з необхідними плагінами (в html необхідно додати вміст). Потім відкриваємо конфігураційний файл. У ньому за умовчанням вже є кілька блоків server, які в масі своїй закомментированы. Щоб домогтися оптимального результату, цей процес необхідно виконати по відношенню до всіх складових за замовчуванням. Потім додаємо новий блок server за допомогою такого коду:
    http { server { } } Конфігураційний файл може працювати з декількома такими блоками. Але вони повинні відрізнятися своїми іменами і портами, за допомогою яких відбувається отримання даних.

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

    Nginx: настройка і установка
    Визначається всередині server: location /{ root /data/www; } Наявність знака «/» необхідно, щоб порівнювати отримані дані і дивитися, є такий адресу з обробленого запиту тут. Якщо ніяких проблем немає, то вказуємо шлях /data/www до потрібного файлу, що знаходиться в цій локальній системі. Якщо збіг є з кількома блоками, то вибирається той, у якого щонайдовший префікс. У наведеному прикладі його довжина дорівнює одиниці, тобто використання виключно в тому випадку, якщо немає конкурентів. Тепер давайте його вдосконалюємо: location /images/{ root /data; } Як можете визначити, ми шукаємо зображення. А тепер давайте поєднаємо всі напрацювання, які були раніше, і конфігурація на даний момент виглядає наступним чином: server { location /{ root /data/www; } location /images/{ root /data; } } Це робочий варіант, який випадку стандартний порт №80. Цей сервер без проблем може бути доступний на локальному комп'ютері, якщо пройти за адресою: http://localhost/. Як же це все буде працювати?

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

    Nginx: настройка і установка
    Отже, коли прийдуть запити, що починаються з с /images, то сервер файли з відповідного каталогу будуть відправлятися користувачеві. При його відсутності буде передана інформація, яка вказує на помилку 404. Якщо проводиться налаштування nginx на локальному комп'ютері, то при запиті http://localhost/images/example.png нами буде отриманий файл, місце розташування якого /data/images/example.png. При вказівці одного символу «/» пошук буде проводитися в директорії /data/www. Але ми тільки змінили конфігурацію. Щоб вона почала працювати, її необхідно перезавантажити. Для цього використовуйте команду 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 був змінений. Так, в даному випадку він може працювати з типовими розширеннями зображень. Трохи по-іншому його можна було б відобразити таким чином: location ~ .(gif|jpg|png)$ { root /data/images; } Підсумкова конфігурація проксі-сервера виглядає наступним чином: server { location /{ proxy_pass http://localhost:8080/; } location ~ .(gif|jpg|png)$ { root /data/images; } } Він буде фільтрувати запити, в кінці яких є зазначені розширення, і відправляти їх тому, хто попросив файли. Не забувайте, що при бажанні перевірити файл конфігурації його необхідно буде перезавантажити. І повірте, це найпростіша nginx-налаштування. Якщо відкрити конфігураційний файл сервера «Вконтакте» або іншої великої компанії, у них буде коду більше, ніж слів в цій статті.
    Схожі добрі поради по темі
    Still Life: проходження гри. Корисні поради по проходженню
    Still Life: проходження гри. Корисні поради по проходженню
    Представляємо вашій увазі короткий проходження серії ігор Still Life для тих, хто хоче дізнатися історію світу гри.
    Intel Core 2 Duo E7500: технічні характеристики і відгуки
    Intel Core 2 Duo E7500: технічні характеристики і відгуки
    Багато споживачі по достоїнству оцінили процесор Intel Core 2 Duo E7500. Порівняно з попередніми моделями, він по параметру граничної частоти значно
    Код 504: помилка перевищення часу очікування відгуку
    Код 504: помилка перевищення часу очікування відгуку
    Напевно, багато користувачів Інтернету та комп'ютерних мереж не один раз стикалися з такою неприємною ситуацією, як поява в браузері коду 504
    Провайдер "Білайн": настройка роутера
    Провайдер "Білайн": настройка роутера
    Налаштування Wi-Fi роутера "Білайн" – це досить важкий процес, який вимагає не лише уваги та обережності, але й спеціальних знань. Проте, правильно
    Поетапна настройка локальної мережі
    Поетапна настройка локальної мережі
    Налаштування локальної мережі в багатьох викликає труднощі. Якими способами можна створити мережу і як її налаштувати коректно?
    Як включити диспетчер завдань? Це повинен знати кожен користувач комп'ютера
    Як включити диспетчер завдань? Це повинен знати кожен користувач комп'ютера
    Якщо якась програма не реагує на дії користувача, саме час згадати про те, як включити диспетчер задач.