У цьому підручнику ми швидко обговоримо, як використовувати директиву try_files, і дізнаємося, коли і як її використовувати:
Що таке директива try_files і як це працює?
Зазвичай ми використовуємо директиву try_files Nginx, щоб рекурсивно перевірити, чи існують файли в певному порядку, і обслуговувати файл, розташований першим.
Директива try_file знаходиться в блоках сервера та розташування та визначає файли та каталоги, в яких Nginx повинен перевіряти наявність файлів, якщо отримано запит до вказаного розташування. Типовий синтаксис директиви try_files такий:
Розташування /try_files $ uri $ uri / / default / index.html;
Розташування / блок визначає, що це збіг для всіх місцеположень, якщо явно не вказано розташування /
Усередині другого блоку try_files означає, що якщо Nginx отримує запит до URI, який відповідає блоку в розташуванні, спробуйте спочатку $ uri, а якщо файл присутній, подайте файл.
Наприклад, якщо такий запит, як https: // linuxhint.com / blocks / io.sh отримано, Nginx спочатку шукатиме файл у каталозі / blocks і обслуговуватиме файл, якщо такий є.
Наступна частина (/ default / index.html) визначає резервний варіант, якщо файл не в першому параметрі. Наприклад, якщо файл відсутній у каталозі / block, Nginx буде шукати каталог / за замовчуванням і обслуговувати файл, якщо він існує.
За замовчуванням Nginx забороняє перелік каталогів, і ви отримаєте 403 заборонено, якщо у вас не встановлено автоматичний індекс на.
Якщо Nginx не вдається знайти файл у зазначених місцях, він відображає користувачеві помилку 404 not found.
ПРИМІТКА: Директива try_files Nginx рекурсивно шукає файли та каталоги, вказані зліва направо, поки не знайде їх. Вказівка цієї директиви в розташуванні / може спричинити проблеми з продуктивністю, особливо на сайтах з великим трафіком. Тому вам слід чітко вказати блок розташування для try_files.
Висновок
Цей короткий і простий посібник надає вам огляд того, як працює Nginx try_block. Ми рекомендуємо глибоко заглибитися в документацію Nginx, щоб зрозуміти різні блоки та час їх використання.
- https: // nginx.org / en / docs / http / ngx_http_core_module.html # try_files
- https: // docs.nginx.com / nginx / admin-guide / web-server / serve-static-content /