Nginx和Apache是web服务器,不具备解析动态语言(比如php文件和js文件)的能力;能够解析这些脚本语言的程序叫应用服务器,比如Tomcat,Nodejs。
Apache之所以能和其他语言配合,需要借助不同的模块,Nginx则是通过端口转发,所以Apache和Nginx可以和各种编程语言一起使用,但Node只能用js,Tomcat只能用java。
Node现在打包做桌面端的程序,比如VSCode和Atom。游戏方面不太懂,貌似也有用动态语言做服务器的。
简单点理解,Apache = Nginx,相当于微软的IIS;tomcat=Apache+jsp解析器;Node.js只是JavaScript解析器,但可以自己写个js监听80端口解析HTTP协议,那就能等同于Apache和Nginx了,功能和性能那估计没得比。
Apache,nginx应该是一类,web服务器。
tomcat是java的应用服务器。
nodejs是js的应用服务器。
如果php跑Apache,就像java跟tomcat,js跟nodejs
tomcat,nodejs,本身可以提供web服务,这点不像php,需要Apache或者nginx
Nginx是web服务器,又比较特殊,它后面还能接其他服务器,后面可以接tomcat,Apache,nodejs,也可以接php-fpm跑php
nodejs跑js,有2种,一是用js编后端,就跟java,php一样。二是做前端工具。最常见的还是后者。