生产环境中的Python SimpleHTTPServer

13

我想使用Python提供静态文件服务。 Python 3中的 http.server 在生产环境中是否适用?如果不是,为什么?还有其他替代品吗?


https://docs.python.org/2/library/simplehttpserver.html - Validus Oculus
你可以使用Tornado库来提供单个静态文件的任意位置。https://dev59.com/DmEi5IYBdhLWcg3wd8Ou - Validus Oculus
你预计会有什么样的负载? - David Ehrmann
1个回答

4

引用文档https://docs.python.org/3/library/http.server.html#module-http.server

警告:不建议在生产中使用http.server。它只实现了基本的安全检查。

首先,您根本不需要使用Python来提供静态文件服务。只需使用像Apache或NGinx这样的真正的HTTP服务器。如果您想要快速解决方案,只需寻找一个带有预配置图像的Docker容器,适合您的需求。这是NGinx。毫无疑问,Docker是一款必备工具,您不会后悔学习它。

$ docker run --name mysite-nginx -v /mysite:/usr/share/nginx/html:ro -p 80:80 -d nginx

2
你完全不需要使用Python来提供静态文件服务。只需使用像Apache这样的真正HTTP服务器即可。我来到这个问题是想知道是否可能“只是提供一个文件夹”而不调用庞大的Apache...如果您不需要任何功能。 - JamesTheAwesomeDude
3
我只是想知道是否可以运行一个非常非常简单的http api(仅限单个get单个post命令),只有我会真正使用。我希望这个服务器可以在另一个python脚本中轻松启动和停止,SimpleHTTPServer似乎是答案,但文档中的警告让我非常担心它是一个巨大的漏洞风险(因为端口显然会暴露在互联网上)。正如其他评论所说,我真的不想为这样一个小小的个人使用规模调用像apache这样的庞然大物。 - A Kareem
2
一个使用Docker封装的Nginx非常轻便易用。你还可以从一些自动重启、日志轮转等功能中受益。SimpleHttpServer也可以实现,但你最终会经常ssh进入该服务器进行监控。 - Antoine Claval

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接