一说到nginx我们可能想到它跟服务器挂钩:
那么具体他有哪些功能呢:
1:反向代理
2:负载均衡
3:资源服务器:
接下来具体说说不同功能下都做了哪些事情:
一说到反向代理我们可能会想到的是代理了,那么代理和反向代理的区别到底是什么呢:
我们一般说到的代理很大程度上跟翻墙相关了,也就是说利用墙外面的未被墙屏蔽的服务器(说白了就是电脑)
利用它来连接墙外面的网络;这样可以隐藏客户端的作用,黑客很多时候就是利用代理来进行操作的,利用代理跳转几次,你就很难追综到了;
说完了代理我们来说说反向代理;代理是让你能看到外面的世界,那么反向代理就是让外面的世界看到你;
再服务器上的应用就是对服务器进行统一调度分配:
1:假设一台服务器(django为例)能处理的并发是2000个,这是后你公司的需求是让你的服务器能够承受的压力是并发数为20000,那么怎么办呢:很容易先到的方法就是增加服务器了,但是服务器不是大白菜,所以还有一个办法就是nginx来提高他的并发能力;那么他是如何增强的呢:首先它是c能承载更多的并发量:
其次他能进行活跃用户和非活跃用户的转换,这样appserver就不用做活跃用户的请求就行了;
2:nginx的负载均衡目前支持的方法:
1):加权重值,也就是每台服务器性能不同,根据他们的性能给他们分配一个权重,让他们根据这个来处理业务
2):通过iphash的方法:一些客户端再访问appserver的时候会有一些缓存,通过iphash的方法,对于同一个ip地址,总是 指向同一个服务器,这个才能保证这些缓存有用,能有效的提升服务器效率;
3):fair:响应时间来确定任务量:对于反应快的服务器就多更他分配任务
4):urlhash :让一些图片存储再专门的服务器上,在设置url的时候,通一一种url的设置方法;这样就能让做业务去做业务,做图片(io)的去专门做图片任务
tengine就是再nginx上添加了更多的第三方包的东西,(适合中国的服务器要求,不用自己去配置,下载安装之类的)
如何能加快网站的速度呢:
1:首先首先要做成静态的,也就是说没有对业务服务器的访问(也就是没有做过sql查询)
2:把主页放到nginx上,让nginx代理
3:把一些静态资源给nginx,(包括htmlcss,js的内容)