Вступ

Nginx – це один із найбільш популярних веб/проксі серверів у світі. Є версії для сімейства Unix-подібних операційних систем та Microsoft Windows.
У цій публікації ми обговоримо  різницю між директивами root і alias

В чому саме різниця між root і alias ?

Якщо коротко, то в обробці шляху вказаного в root і alias.
Директива root обробляється за схемою location додається до root, а в alias частина розташування буде видалена. Рекомендують щоб location відповідав останній частині значення директиви alias.

Приклади застосування

Допустимо у нас є конфігурація:

location /static/ {
root /var/www/your_site/static/;
autoindex off;
}

У цьому випадку кінцевим шляхом, який Nginx виведе, буде:

/var/www/your_site/static/static

Веб сервер відповість статус кодом 404 на дане посилання, так як даного шляху static/static/ не існує. Причина тому, що частина розташування додається до шляху, указаного в root. Тому правильна конфігурація із root директивою буде:

location /static/ {
root /var/www/your_site/;
autoindex off;
}

Якщо ми розглянемо перший приклад, змінивши root на alias

location /static/ {
alias /var/www/your_site/static/;
autoindex off;
}

то остаточним шляхом який ми отримаємо буде:

/var/www/your_site/static

так як частина розташування буде видалена.

Ну і ще трішки про косу риску в alias

Відповідно до документації Nginx немає чітких вказівок щодо того, чи є обов’язковою коса риска в кінці. Але деякі користувачі на stackoverflow(дана паблікація базується на цьому обговоренню) пишуть, що вона є обов’язковою.

Від ittutorials

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *