Я хочу обслуживать статические файлы с помощью Python. Подходит ли Python 3 http.server
для использования в производстве? Если нет, то почему? И какие у меня есть альтернативы?
Python SimpleHTTPServer в производстве
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
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
Я, честно говоря, просто хочу знать, могу ли я запустить очень ОЧЕНЬ простой http API (одна команда get single post, вот и все), который только я когда-либо буду использовать. И я хочу, чтобы этот сервер легко запускался и останавливался в другом скрипте Python, SimpleHTTPServer казался ответом, но предупреждение в документации меня очень беспокоит, что это огромный риск уязвимости для использования (поскольку порт будет открыт для Интернета, очевидно ). и, как говорится в другом комментарии, я действительно не хочу вызывать BEHEMOTH, такого как apache, для такого небольшого личного использования.
- person A Kareem; 23.12.2020
Nginx, обернутый в докер, прост в эксплуатации. Вы также можете воспользоваться некоторыми функциями автоматического перезапуска, ротации журнала и т.п. SimpleHttpServer сделает свое дело, но в конечном итоге вам придется часто подключаться к этому ящику по ssh, чтобы присматривать за ним.
- person Antoine Claval; 31.03.2021