1. 1
  2. 2
  3. 3
  4. 4
  5. 5

# конспект · шаг 5 из 5

Конспект: root против alias

выжимка - её можно унести в заметки

Как URI превращается в путь на диске - и чем alias отличается от root.

Две формулы

root  + URI                      = путь        root  /var/www/static
                                                /images/logo.png → /var/www/static/images/logo.png

alias заменяет часть URI, совпавшую с location
                                                location /images/ { alias /mnt/pics/; }
                                                /images/logo.png → /mnt/pics/logo.png

root дописывает URI целиком; alias подменяет совпавший префикс.

Запрос на каталог

index index.html;      # что отдать вместо каталога
autoindex off;         # по умолчанию: список файлов не показываем

Нет index-файла и autoindex off - будет 403, а не 404.

Ловушки джокера

  • Пропавший слеш в alias. location /files { alias /mnt/data/; } без слеша в location даёт alias-traversal: запрос /files../etc/passwd уходит выше каталога. Правило: у alias слеш обязателен с обеих сторон, а лучше - location ^~ /files/.
  • alias с регулярным location требует, чтобы путь содержал захваты - иначе поведение неочевидное; в 99% случаев вместо этого хватает root.
  • root внутри location не «добавляет» подкаталог - он заменяет унаследованный корень целиком, и URI дописывается к нему как обычно.
  • CVE-2026-27654: переполнение буфера в COPY/MOVE в location с alias, закрыт в 1.29.7 - ещё одна причина не оставлять старую версию.

Комментарии

Пока нет комментариев. Будь первым!

Оставить комментарий

Комментарий появится после проверки. Email не публикуется. Войти, чтобы не вводить имя каждый раз.