关于nginx的使用感想

 

 

 

 感慨:

    最近老板说要转型NodeJs,所以接连用ThinkJS框架写了2个项目(不过通篇弱类型不用考虑class是真的爽啊。。。)。那天老板又正好让我看看Ngxin的负载均衡和静态资源处理,那现在就写一下学习记录。(之前那个CIO项目倒是用过Ngxin来指向代理的)

1、开启一个项目没有使用Nginx的时候的请求数据如下(端口为8670):

 

第一个请求很明显是控制器请求,之后的借分别是js、css和img的请求。共计8个请求

2、这个时候我在开启一个端口为8671的服务,并将Nginx做成一下配置后开启

(        BlanceServers为采取的负载均很策略名称,在server 的proxy_pass里面选择相应的策略即可 ,weight采用的是权重的模式  )

这个时候访问服务器的8602端口,两个启动的服务日志分别如下:

  

 

 和第一个阶段的对比一下就可以很明显的发现两个端口各分配了4个请求

权重(weight) 只是负载均衡的一种策略,还有根据IP、端口轮询等等方式。

3、静态资源的访问

这个效果还是很明显的,我们先把权重策略关闭,仅开一个8670的服务,然后把proxy_pass指向8670。

然后在nginx配置中添加如下内容

 这个时候先不要开启Nginx,并在首页添加一个很大的静态资源(我这采用的是图片)

很明显可以看到这个1.1MB的图片加载了2.27s,这个不是第一次访问,我刷新过很多次之后的结果。

这个是服务的请求日志:

然后我们将修改好配置内容的Nginx重启并访问8602端口,结果如下:

(这个是我请求了多次)

差异很明显了。

总结

  nodejs本身就是一个单线程的,只是thinkjs框架采用了Master-worker轮询的机制,一个静态资源的请求也是会占用一个work的,而且nginx对于静态资源的请求还有压缩协议处理。所以静态资源还是用nginx来处理吧~

后记:我预计明年还是要回无锡的,但是网上看了一下感觉Node的岗位完全和.NET的数量无法比,更何况现在Core出来了。我觉得我以后的发展路线还是跟着微软吧~

猜你喜欢

转载自www.cnblogs.com/moshanghuakai/p/8962885.html
今日推荐