Debian.pro/

Про Debian


Слегка облегчаем жизнь apache. Избавляемся от autoindex. Autoindex в nginx.

Есть у 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
и радуемся.


Комментарии (7):

  1. До сих пор не знал, как выводится список файлов в директории на веб-сервере. Спасибо, что навёл на эту тему.

  2. Сделал, пригодилось таки! Ещё раз спасибо!
    Пожалуйста, прикрути теги — искать по ключевым словам, конечно, клёво, но сначала я безуспешно пытаюсь найти нужный тег (типа nginx, ssh) и минуту туплю, смотря на боковую панель сайта.

  3. Облако, облако тегов. Сейчас, я так понимаю, нужно сначала найти статью с таким тегом, и кликнуть по нему.

  4. Нет, можно просто ввести тег в ссылке =)
    На самом деле я теги к статьям не проставляю. А навигацию как-нибудь сделаю.

  5. влад :

    Здравствуйте! У apache на индексной странице есть сортировка по дате, а nginx просто печатает дату. Встроенными возможностями можно ли добиться подобного функционала для nginx?

  6. Насколько я помню — нет, ничего такого в стандартном autoindex нет.
    Какой-нибудь autoindex.lua из интернета соприте с подходящей фичей.

Написать комментарий