采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
老师,您好,如果我 静态缓存 不配置在proxy 负载均衡服务器上,直接配置到web server(比如有个文件是detial.html,其文件位置就在 Nginx_web_server01 上),直接利用web_server 中开辟的静态资源缓冲buffer ,请问这样的配置会生效吗,或者说不将静态缓存配置到nginx_proxy01上,这样做意义大吗?
如下图所示:
你好,你的问题很好,也让我一目了然。
回答你问题前,我想说下你提到的“buffer”,Nginx的proxy_cache不会通过内存来存储缓存文件,是将文件缓存到硬盘中,如果想利用内存的方式,需要通过操作系统作一块内存设备进行mount,而这种方式用的是内存中的cache而不是buffer。
下面回答下你的问题:
问题1、我觉得这样作的意义不大,原因1、你本身Nginx2上就作了静态资源服务了,而且也是用的Nginx作。原因2、Nginx1和Nginx2都在一个局域网,如果不是上万并发的考虑、或者后端有什么其他的瓶颈影响,对于存在网络的消耗可以几乎忽略不计。
问题2、如果nginx_web3能直接对外访问,这样作是有意义的,因为请求经过多次代理、数据包转发,这个对于http响应延时是会增加的,也会对服务器造成额外性能损耗。
感谢 JesonChen 老师的回答。 您的回答让我明确了以下几个问题: 1.buffer 与 cache 的区别,我查了下维基百科, buffer(缓冲)是为了提高内存和硬盘(或其他I/0设备)之间的数据交换的速度而设计的。 cache(缓存)是为了提高cpu和内存之间的数据交换速度而设计。 这个问题已经明确。 2.对于我提的第一个问题 --“负载均衡代理服务器与源文件所在的web Server在同一内网内在不考虑大并发情况下,内网服务器之间的网络 I/O可忽略不计。 我是否可以理解为,有一种场景使用此种服务器架构是有效的,如,从上海访问美国的服务器,我可以假设一台在上海的负载均衡服务器,将美国服务器响应的静态资源缓存在上海的代理服务器上?这样应该是大有裨益的,不知我这样理解是否正确? 3.单独的nginx web Server 开启proxy_cache 也是可以的,也就是说并非 proxy_cache 静态缓存配置一定要配置在代理服务器上。我这样理解对吗? 4.由您回答我先前提问中的第二个问题,我有了新的疑问,这个我在网上没有找到明确的解释,所以请教下您。新的问题是,既然我单台 nginx_web_03 上存有源文件 detial01.html(存储于硬盘之上),那么我在本机 webServer 开启了静态缓存,因 您之前的回答 “Nginx的proxy_cache不会通过内存来存储缓存文件,是将文件缓存到硬盘中”,那么我的缓存文件也存储在硬盘之上,源文件也存储在硬盘之上,服务器上资源的响应都是要从硬盘上读取文件,请问这样的在硬盘之上的缓存,能提高服务器资源响应性能的原理又在哪里呢? 我问的问题有可能多了点,还请老师解答下,不胜感激。 谢谢!
问题1、网络I/O忽略不计,是集中式的部署情况,最好两台server的物理链路集中在一块。上海和美国,这个链路的问题就比较长了,延时就成了需要考虑的问题,所以这个时候,反而选择最前端的Nginx作代理合适。问题3、是的,问题 4、用Nginx作缓存的优势,在于静态资源的处理和动态内容静态化。另外,Nginx缓存不是不支持内存,只是不能直接通过Nginx开辟内存空间而已。
谢谢老师。我明白了,谢谢!
感谢 JesonChen 老师的回答。 您的回答让我明确了以下几个问题:
1.buffer 与 cache 的区别,我查了下维基百科, buffer(缓冲)是为了提高内存和硬盘(或其他I/0设备)之间的数据交换的速度而设计的。 cache(缓存)是为了提高cpu和内存之间的数据交换速度而设计。 这个问题已经明确。
2.对于我提的第一个问题 --“负载均衡代理服务器与源文件所在的web Server在同一内网内在不考虑大并发情况下,内网服务器之间的网络 I/O可忽略不计。 我是否可以理解为,有一种场景使用此种服务器架构是有效的,如,从上海访问美国的服务器,我可以假设一台在上海的负载均衡服务器,将美国服务器响应的静态资源缓存在上海的代理服务器上?这样应该是大有裨益的,不知我这样理解是否正确?
3.单独的nginx web Server 开启proxy_cache 也是可以的,也就是说并非 proxy_cache 静态缓存配置一定要配置在代理服务器上。我这样理解对吗?
4.由您回答我先前提问中的第二个问题,我有了新的疑问,这个我在网上没有找到明确的解释,所以请教下您。新的问题是,既然我单台 nginx_web_03 上存有源文件 detial01.html(存储于硬盘之上),那么我在本机 webServer 开启了静态缓存,因 您之前的回答 “Nginx的proxy_cache不会通过内存来存储缓存文件,是将文件缓存到硬盘中”,那么我的缓存文件也存储在硬盘之上,源文件也存储在硬盘之上,服务器上资源的响应都是要从硬盘上读取文件,请问这样的在硬盘之上的缓存,能提高服务器资源响应性能的原理又在哪里呢?
我问的问题有可能有点多,还请老师解答下,不胜感激。
谢谢!
登录后可查看更多问答,登录/注册
中间件、负载均衡、应用层安全防护、动静分离、Nginx+LUA开发等
3.2k 10
2.1k 12
1.0k 12
1.8k 11