Из чего сделан сервер

Была как-то поставлена задачка сделать файло-обмен с клиентами.

Казалось бы все просто, поставил апач, модуль autoindex и живи себе спокойно, но ведь мы не ищем легких путей. Если мы - рекламное агентство, и занимаемся дизайном, то все у нас должно быть красиво!

Потому ковырять Апач я отказался - уж больно он громоздкий.

В дело вступает nginx! (Пользуясь случаем хочу сказать огромное спасибо Игорю Сысоеву.

Изучая дерево исходников сервера nginx я увидел следующий файл: nginx/src/http/modules/ngx_http_autoindex_module.c

Очень небольших трудов составило подправить дизайн страницы автоиндекса, и в итоге получился более-менее приличный дизайн: http://file.tessart.ru/test/

Мне страшно от одной только мысли, что пришлось бы копаться в исходниках апача, хотя…. видимо все еще впереди.

По просьбе Андрея, отписавшегося ниже в комментариях выкладываю патч:

117c117
< "<head><title>Index of "
---
> "<head><meta http-equiv=\"content-type\" content=\"text/html;charset=utf-8\"/><link rel=\"stylesheet\" type=\"text/css\" href=\"/maxantonov.name.css\" media=\"screen\" /><link rel=\"shortcut icon\" href=\"/favicon.ico\"/><title>Файлы в :  "
124c124
< "<h1>Index of "
---
> "<h1>Список файлов в "
127a128,129
> "<a href=\"http://tessart.ru/\"><img style=\"border: 0; \" src=\"/logo.gif\"/></a>" CRLF
> "<p>Рекламное агентство Тессарт</p><p>+7 (495) 980-6795</p>" CRLF
153,154c155,156
<     static char  *months[] = { "Jan", "Feb", "Mar", "Apr", "May", "Jun",
<                                "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" };
---
>     static char  *months[] = { "Январь", "Февраль", "Март", "Апрель", "Май", "Июнь",
>                                "Июль", "Август", "Сентябрь", "Октябрь", "Ноябрь", "Декабрь" };
352,353c354,355
<           + sizeof("<hr><pre><a href=\"../\">../</a>" CRLF) - 1
<           + sizeof("</pre><hr>") - 1
---
>           + sizeof("<hr/><pre><a href=\"../\">Наверх</a>" CRLF) - 1
>           + sizeof("</pre><hr/>") - 1
387,388c389,390
<     b->last = ngx_cpymem(b->last, "<hr><pre><a href=\"../\">../</a>" CRLF,
<                          sizeof("<hr><pre><a href=\"../\">../</a>" CRLF) - 1);
---
>     b->last = ngx_cpymem(b->last, "<hr/><pre><a href=\"../\">Наверх</a>" CRLF,
>                          sizeof("<hr/><pre><a href=\"../\">Наверх</a>" CRLF) - 1);
516c518
<     b->last = ngx_cpymem(b->last, "</pre><hr>", sizeof("</pre><hr>") - 1);
---
>     b->last = ngx_cpymem(b->last, "</pre><hr/>", sizeof("</pre><hr/>") - 1);
Последние изменения: %2010/%03/%22 %01:%Mar