Ubuntu服务器,nodejs到底有没有必要用nginx 用node做服务器了,还需要nginx吗
Ubuntu服务器,nodejs到底有没有必要用nginx
nodejs和nginx是没关系的两个东西,nodejs开启进程后本身就是一个服务器,除非你的nodejs只是网站中的一个嵌套功能(比如即时通信),那样网站本身还是要用nginx或apache的
用node做服务器了,还需要nginx吗
当然是Nginx Node比较好,除了Nginx来处理静态文件请求和记录web访问日志这种显而易见的好处不说。
单独用Node你如何处理单个IP上的多个Virtual Host,Node的确有办法,你可以搜索一下看看,但是放到Nginx这里根本就不是个事儿。
Nginx Node绝对比单纯的Node更好。
使用了Gunicorn或者uWSGI,为什么还需要Nginx
一种情况,本地有多个 web 服务,有 Python、php、java 编写的,都想监听 80 端口,这个时候就必须有一个负责转发的服务了。 如果本机确定只跑这一个服务,但是 uwsgi 和 gevent 对于静态资源处理的并不是很好,一是性能问题,二是各种 HTTP 请求缓存头,处理的也没有 Nginx 完善。 然后还有一些安全问题,Nginx 作为专业服务器,暴露在公网相对比较安全(虽然有著名的心血漏洞),uwsgi 和 gevent 的话,漏洞恐怕只比 Nginx 多而不是少。 再来就是支持的协议,uwsgi 和 gunicon 早期是不支持 https 的,只能提供 http 给浏览器访问。虽然现在这两者都支持了,但是以后的 spdy 和http2,恐怕也是 nginx 跟进更快一些。 还有一些运维优势,比如服务器被人 CC,这是一种非常常见的情况,nginx 可以比较方便的把一些 IP 加入黑名单,直接改配置文件就好了。要是 uwsgi 或者 gunicorn,恐怕还要修改自己应用的代码,把 IP 过滤写进去。 题主说只考虑单台机器的情况,但是如果不考虑的话,那一个 nginx 做负载均衡那就几乎是必须了。