Ähnlich wie Django verfügen Frameworks wie express.js über die Fähigkeit, Backends zu verwalten. Warum müssen Serverprogramme wie Apache und Nginx im Allgemeinen in Entwicklungsumgebungen bereitgestellt werden?
You’ve started the Django development server, a lightweight Web server written purely in Python. We’ve included this with Django so you can develop things rapidly, without having to deal with configuring a production server – such as Apache – until you’re ready for production.
Now’s a good time to note: don’t use this server in anything resembling a production environment. It’s intended only for use while developing. (We’re in the business of making Web frameworks, not Web servers.)
在不同的网络环境里面,对网络的需求,不仅仅是能够进行网络通信,还需要很多不同的需求,如果不将服务器隔离开来,那么会相当不灵活,处理这些需求,会很费事,甚至无法完成。下面是一些需求:
高性能:nginx和apache通过配置就可以大大的提高不同场景下的性能,对高并发更加是优化得很彻底了。
安全:对ssl的支持,证书的支持,其他服务器很可能没实现或者实现不统一。
代理分发:统一了入口点,避免暴露内部复杂的环境。
Django教程一开始就说了:
截取自:https://docs.djangoproject.co...
Django自带的Web Server只是为了简化开发环境,人家根本就不是打算做一整个靠谱的Web服务器,绝对不要在线上生产环境使用。线上还是需要使用专业的服务器。这一点就不同于Tornado,人家本身就是一个靠谱的服务器。
至于Node.js,的确可以使用自带的,也没什么问题,但是你要知道,Node.js是单线程的。
那个你有个32核的服务器,跑个单线程的Node.js程序就太浪费了,所以就会启动多个Node.js进程,分别监听不同的端口号,再用Nignx做反向代理,这样就可以最大化利用服务器资源。
专业的事需要专业的工具。
专业的事需要专业的工具。+1