在远程运行时,Django的内置testing服务器有多危险?

关于使用manage.py runserver命令启动的内置debugging服务器,Django文档声明:“不要在类似于生产环境的任何情况下使用此服务器”。

如果我想在远程计算机上通过ssh开发一个Django应用程序,那么将Nginx作为正在运行的Djangodebugging服务器的代理是合理的事情吗? Djangodebugging服务器是不是安全的,或者只是没有build立处理大量的stream量?

从Django文档 :

请勿在生产环境中使用此服务器。 它没有经过安全审计或性能测试。 (这就是它将留下来的原因,我们从事的是构建Web框架,而不是Web服务器,所以改进这个服务器来处理生产环境已经超出了Django的范围。)

所以,这回答了后面两个问题。 至于前者,这取决于你的调试服务器是如何设置的。 如果您的服务器暴露于公共Internet,没有防火墙拦截端口8000,并且您打算将runserver与默认的127.0.0.1地址以外的其他服务器一起使用,请设置一个更合适的应用程序堆栈。

如果您打算使用nginx,那么为什么不使用建议的FastCGI配置,以便您的调试环境更接近未来的生产环境?

现代Web服务器具有各种与安全性和性能相关的特性,而Django开发服务器则不具备这些特性。 它是一个精简的,非常基本的单线程服务器,用于开发。 因此,文档为什么说不要在生产环境中使用它。

然而,人们却害怕这种说法。 关键的定义是为了发展 。 无论是在本地计算机还是远程VPS或整个群集上进行开发,都是重点。

如果服务器是公开的,那么它就会对黑客入侵,破坏,DoS攻击等等开放。但是,如果没有什么重要的东西,只是一个运行在虚拟数据上的开发网站,没关系。 所以,是的,您可以使用远程服务器上的开发服务器进行开发。 没有什么不对的。 我唯一需要注意的是避免使用生产数据(例如使用生产数据库中的转储进行开发),因为这些数据可能会受到影响。 否则,这没什么大不了的。

Django调试服务器是不是安全的,或者只是没有建立处理大量的流量?

它是两个嵌套而不是重型交通的意图!

通过将代理服务器隐藏在测试服务器后面,可能会涉及到一些问题,但是如果您要花费相当多的工作量来完成相同数量的工作,是WSGI。 使用mod_wsgi,gunicorn,或检查出更多的出血性边缘解决方案: http ://bartek.im/blog/2012/07/08/simplicity-nginx-uwsgi-deployment.html。 无论你做什么….不要使用DJANGO测试服务器生产环境!