Есть у apache2 такая совершенно бесполезная штука — autoindex. Нет, ну правда, зачем она нужна в apache, если она есть в nginx, который тратит времени на построение индексов значительно меньше. Да и красивее он это делает =)
Далее исходим из следующего. В apache autoindex включен для всех директорий, для которых стоит chmod +x. Согласитесь, небезопасно. В nginx autoindex нужно включать для каждого нужного каталога в конфиге (или для каждого server {}, но я не буду касаться этого случая.)
Если кто не знает что такое autoindex — то это штуковина, которая включает листинг директорий по http, средствами веб-сервера (конечно, если в директории нет настоящего index-файла).
Начнем-с.
Отпилим эту штуку у apache:
root@debian-nginx:~# a2dismod autoindex && apachectl restart
Теперь прикрутим её к nginx. В моём случае это выглядело так:
server {
listen 80;
server_name debian.pro www.debian.pro;
... # other configuration here
location /files {
autoindex on;
autoindex_exact_size off;
autoindex_localtime on;
charset utf-8;
}
}
Данный кусок конфигурационного файла включил autoindex для каталога http://debian.pro/files/
Вы можете вписать эти директивы прямо в server {} — тогда autoindex включится для всего server. Я не считаю такую идею хорошей, но мало-ли)
К сожалению, мне не удалось навскидку найти способ изменить дизайн этой страницы. Но по мне и так неплохо.
Теперь о директивах, которые мы написали:
autoindex on — включаем autoindex
autoindex_exact_size off — округляем размер файлов до мегабайт, гигабайт и т.д. (при on — выводится точный размер в байтах).
autoindex_localtime on — переключалка временной зоны в сгенерированном файле. off = GMT, on = локальное время на сервере.
charset utf-8; — нужно для linux-систем, чтобы правильно отдавались имена файлов по-русски.
Перезагружаем nginx:
root@debian-nginx:~# /etc/init.d/nginx restart
и радуемся.
До сих пор не знал, как выводится список файлов в директории на веб-сервере. Спасибо, что навёл на эту тему.
Сделал, пригодилось таки! Ещё раз спасибо!
Пожалуйста, прикрути теги — искать по ключевым словам, конечно, клёво, но сначала я безуспешно пытаюсь найти нужный тег (типа nginx, ssh) и минуту туплю, смотря на боковую панель сайта.
https://debian.pro/tag/nginx нне? )
Не за что.
Облако, облако тегов. Сейчас, я так понимаю, нужно сначала найти статью с таким тегом, и кликнуть по нему.
Нет, можно просто ввести тег в ссылке =)
На самом деле я теги к статьям не проставляю. А навигацию как-нибудь сделаю.
Здравствуйте! У apache на индексной странице есть сортировка по дате, а nginx просто печатает дату. Встроенными возможностями можно ли добиться подобного функционала для nginx?
Насколько я помню — нет, ничего такого в стандартном autoindex нет.
Какой-нибудь autoindex.lua из интернета соприте с подходящей фичей.