Python SimpleHTTPServer в производстве

Я хочу обслуживать статические файлы с помощью Python. Подходит ли Python 3 http.server для использования в производстве? Если нет, то почему? И какие у меня есть альтернативы?


person zxz    schedule 28.10.2015    source источник
comment
https://docs.python.org/2/library/simplehttpserver.html   -  person Validus Oculus    schedule 28.10.2015
comment
или вы можете использовать библиотеку торнадо. stackoverflow.com/questions/21248222/   -  person Validus Oculus    schedule 28.10.2015
comment
Какую нагрузку вы ожидаете?   -  person David Ehrmann    schedule 22.04.2017


Ответы (1)


Цитирование документации https://docs.python.org/3/library/http.server.html#module-http.server

Предупреждение: http.server не рекомендуется для производства. Он реализует только базовые проверки безопасности.

Прежде всего, вам вообще не нужен python для обслуживания статических файлов. Просто используйте настоящий HTTP-сервер, такой как Apache или NGinx. Если вам нужно быстрое решение, просто найдите док-контейнер с предварительно настроенным образом, подходящим для ваших нужд. Вот NGinx. Определенно, докер — это обязательный инструмент, о котором вы не пожалеете.

$ docker run --name mysite-nginx -v /mysite:/usr/share/nginx/html:ro -p 80:80 -d nginx
person Leo    schedule 22.03.2016
comment
you don't need python at all to serve static files. Just use a real HTTP Server like Apache -- Я пришел к этому вопросу, чтобы посмотреть, можно ли просто обслуживать папку, не вызывая бегемота, которым является Apache... если вам не нужны какие-либо функции - person JamesTheAwesomeDude; 25.07.2020
comment
Я, честно говоря, просто хочу знать, могу ли я запустить очень ОЧЕНЬ простой http API (одна команда get single post, вот и все), который только я когда-либо буду использовать. И я хочу, чтобы этот сервер легко запускался и останавливался в другом скрипте Python, SimpleHTTPServer казался ответом, но предупреждение в документации меня очень беспокоит, что это огромный риск уязвимости для использования (поскольку порт будет открыт для Интернета, очевидно ). и, как говорится в другом комментарии, я действительно не хочу вызывать BEHEMOTH, такого как apache, для такого небольшого личного использования. - person A Kareem; 23.12.2020
comment
Nginx, обернутый в докер, прост в эксплуатации. Вы также можете воспользоваться некоторыми функциями автоматического перезапуска, ротации журнала и т.п. SimpleHttpServer сделает свое дело, но в конечном итоге вам придется часто подключаться к этому ящику по ssh, чтобы присматривать за ним. - person Antoine Claval; 31.03.2021