Главная страница


ru.unix.bsd

 
 - RU.UNIX.BSD ------------------------------------------------------------------
 From : Eugene Grosbein                      2:5006/1       04 Mar 2002  13:59:56
 To : All
 Subject : simple_httpd
 -------------------------------------------------------------------------------- 
 
 Маленький, но шустрый http-сервер.
 У меня работает на раздаче mp4 под FreeBSD 4.5-STABLE, 
 кушает мало памяти и процессора.
 
 /* README.rus */
 Simple_httpd - исправленный и дополненный. 
 
 Изменения вносились в simple_httpd от FreeBSD 3.5.
 Собирается и работает на FreeBSD 3.x, FreeBSD 4.x.
 Hа остальных системах не тестировался, но должен собираться
 с минимальными усилиями.
 
 Предназначен для быстрой раздачи тяжелой статики (mp3,mp4)
 в условиях дефицита памяти и процессора.
 Hе использует конфигурационные файлы. Способен работать в составе PicoBSD.
 
 Основные отличия от исходного кода:
 
 - Исправлены многочисленные buffer overflow, ведущие к segmentation fault.
 
 - Добавлена пропущенная выдача Content-length.
 
 - Уменьшены требования к памяти по сравнению с исходным кодом
   при компиляции без дополнительных возможностей. В основном за счет
   удаления неиспользуемых переменных и сокращения размера буферов.
   В некоторых случаях копирование строк заменено копированием
   указателей.
 
 - Введеен массив mime_type[][] для отображения расширений в MIME-type
   и detault_mime_type для файлов с неизвестным/отсутствующим расширением.
   Для изменения таблицы требуется пересборка.
 
 - Все strcpy() и strcat() заменены на strncpy() и strncat().
 
 - Сервер больше не выдает код ошибки HTTP 405, вместо этого выдается
   404 или 501.
 
 - Для пустого запроса выдается 501 вместо 404.
 
 - (GCC) Компиляция без предупреждений при gcc -ansi -pedantic -Wall -Wno-format.
   -Wno-format убирает фальшивое предупреждение об использовании
   %m в syslog()
 
 - Добавлена поддержка "докачки": сервер распознает Range и Request-Range
   и выдает 206 Partial contents. Соответствующий код позаимствован из
   thttpd-2.21b (какая у него лицензия?), поэтому распознаются только
   форматы %d-, %d-%d.
 
 - Поддержку CGI можно отключить, указав при сборке SHTTP_NOCGI=yes.
 
 - Код отладочного вывода (-v) можно отключить, 
   указав при сборке SHTTP_NOVERBOSE=yes.
 
 - Добавлена возможность выдачи диагностики через syslog(3).
   Для включения указать SHTTPD_USE_SYSLOG=yes при сборке. 
   Использует logging facility daemon. По умолчанию использует syslog-префикс 
   simple_httpd, префикс переопределяется через опцию командной строки -s.
   Префикс должен быть короче 32 символов.
 
 - (BSD) Добавлена возможность ограничения доступа через hosts_access(5).
   Для включения указать SHTTPD_USE_TCP_WRAPPERS=yes при сборке,
   это добавляет код. Для того, чтобы этот код использовался, указать
   ключ -w при старте. Hазвание сервиса берется из аргумента ключа -s.
   Если включено использование syslog(3), отброшенные коннекты отмечаются
   в syslog как auth.warning.
 
 - Добавлен таймаут на этапе чтения запроса. По умолчанию 10 секунд,
   значение можно изменить через опцию -t.
 
 - Сервер больше не порождает зомби.
 
 - Сервер использует '/' в качестве HOME, если такой переменной среды нет,
   вместо того чтобы падать по SIGSEGV.
 
 - Сервер теперь создает лог-файл, если его нет. Права доступа определяются
   текущим значением umask.
  
 - Сервер больше не ограничивает backlog для listen(2). Теперь используется
   системный предел.
 
 - (BSD) Добавлена возможность использования setproctitle(3) для индикации 
   внутреннего состояния. Для включения указать SHTTPD_USE_SETPROCTITLE=yes
   при сборке. Если к тому же указан SHTTPD_USE_TCP_WRAPPERS, заголовок
   будет включать адрес клиента.
 
 - (BSD) Опциональная поддержка URL, закодированных как %NN. Для включения
   указать SHTTPD_URLDECODE=yes. Ограничения: код использует непереносимые
   функции ishexnumber() и digittoint() из libc FreeBSD и не обрабатывает '?'.
   TODO: избавится от ограничений.
 
 - (BSD) Добавлена возможность использования sendfile(2) вместо цикла read/write.
   Для включения указать SHTTPD_USE_SENDFILE=yes при сборке.
   Может потребоваться изменить опцию ядра NSFBUFS, проверьте в LINT.
 
 - (BSD) Добавлена возможность использования FreeBSD accf_http(9).
   Для включения кода указать SHTTPD_USE_ACCF=yes при сборке. 
   Для использования фильтра добавить опцию командной строки -a.
 
 Hамеренно не имеет встроенных ограничений доступа ради уменьшения кода.
 Предполагается использование системных средств. Hапример, для FreeBSD 
 (и, возможно, других *BSD) это login.conf, hosts_access и firewall.
 
 Eugene
 -- 
 "Люди забыли эту истину," - сказал Лис, - "но ты не забывай"
 --- slrn/0.9.7.3 (FreeBSD)
  * Origin: Svyaz Service JSC (2:5006/1@fidonet)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 simple_httpd   Eugene Grosbein   04 Mar 2002 13:59:56 
 Re: simple_httpd   oleg dashevskii   05 Mar 2002 01:54:59 
 Re: simple_httpd   Eugene Grosbein   05 Mar 2002 11:11:57 
 simple_httpd   Max Khon   05 Mar 2002 03:49:42 
 Re: simple_httpd   Eugene Grosbein   05 Mar 2002 11:01:23 
 Re: simple_httpd   Max Khon   05 Mar 2002 13:35:02 
 Re: simple_httpd   Eugene Grosbein   05 Mar 2002 23:39:08 
 Re: simple_httpd   Max Khon   06 Mar 2002 00:30:36 
 Re: simple_httpd   Eugene Grosbein   06 Mar 2002 16:45:43 
 simple_httpd   Alex Semenyaka   05 Mar 2002 22:51:02 
 Re: simple_httpd   oleg dashevskii   06 Mar 2002 00:04:48 
 Re: simple_httpd   Valentin Davydov   05 Mar 2002 22:40:30 
 Re: simple_httpd   Mykola Dsham   06 Mar 2002 14:45:35 
 Re: simple_httpd   Valentin Davydov   07 Mar 2002 20:05:03 
Архивное /ru.unix.bsd/2609337d79b83.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional