Минимальный, автономный, распространяемый, кроссплатформенный веб-сервер - PullRequest
8 голосов
/ 31 января 2009

В последнее время я пишу довольно много небольших wsgi-приложений и пытаюсь найти веб-сервер, который можно распределить, предварительно настроенный для запуска конкретного приложения. Я знаю, что есть такие вещи, как витая и вишневая, которые могут обслуживать приложения wsgi, но мне, похоже, не хватает ключевой функциональности, которая заключается в возможности «псевдопотока» больших файлов с помощью заголовка диапазона http. Имеется ли веб-сервер, доступный по лицензии BSD или аналогичной лицензии, который может распространяться в виде отдельного исполняемого файла на любой из основных платформ, способной как к прокси-серверу wsgi-серверу (например, cherrypy или подобному), так и к обслуживанию больших файлов с использованием http заголовок диапазона?

Ответы [ 2 ]

5 голосов
/ 02 февраля 2009

Lighttpd имеет лицензию BSD, так что вы можете объединить ее, если хотите.

Вы говорите, что это для небольших приложений, так что я предполагаю, что это означает, что небольшие локальные однопользовательские веб-интерфейсы обслуживаются небольшим http-сервером? Если это так, то любая реализация Python должна работать. Просто используйте что-то вроде py2exe для упаковки (на самом деле, не так давно возник вопрос, касающийся упаковки программ на Python здесь, на SO).

Обновление, re: range header: Http-сервер Python по умолчанию может не поддерживать требуемый заголовок диапазона, но довольно просто написать собственный обработчик или небольшое приложение wsgi для выполнения логики, особенно если все, что вы делаете - это потоковая передача файла. Это не будет слишком много строк:

def stream_file(environ, start_response):
  fp = open(base_dir + environ["PATH_INFO"])
  fp.seek(environ["HTTP_CONTENT_RANGE"]) # just an example
  start_response("200 OK", (('Content-Type', "file/type")))
  return fp
3 голосов
/ 31 января 2009

Что не так с Apache + mod_wsgi? Apache уже мультиплатформенный; он часто уже установлен (кроме Windows).

Вы также можете посмотреть на lighttpd, есть несколько блогов по настройке его для работы с WSGI. См http://cleverdevil.org/computing/24/python-fastcgi-wsgi-and-lighttpd, и http://redmine.lighttpd.net/issues/show/1523

...