回答
收藏
分享
举报
Nginx 反向代理为什么可以提高网站性能?
提问于2020-05-07 18:05

浏览 1.5k

如果作为纯粹的反向代理服务器,不做任何缓存,也没有静态文件服务,每一个请求都转发到后端,这样还能提高性能吗?
已修改于2023-03-17 02:09



写下您的回答
发表回答
全部回答(4)

按点赞数排序

按时间排序

对于后端是动态服务来说,比如Java和PHP。这类服务器(如JBoss和PHP-FPM)的IO处理能力往往不高。Nginx有个好处是它会把Request在读取完整之前buffer住,这样交给后端的就是一个完整的HTTP请求,从而提高后端的效率,而不是断断续续的传递(互联网上连接速度一般比较慢)。同样,Nginx也可以把response给buffer住,同样也是减轻后端的压力。
赞同

2

回复举报

回答于2020-05-07 18:17



回复火男
回复
阿尔巴回复了
厉害

0

回复举报

回答于2020-05-08 06:44



回复阿尔巴
回复

1、因为多了一层Nginx,所以单个请求的时延是肯定增加了,从这个角度讲性能是下降的;

2、因为上游可以有多个后端Server,所以并发能力上升了,总的吞吐量也上升了,这个角度性能还是提升的。

赞同

1

回复举报

回答于2020-09-10 17:07



回复陶辉
回复

可以做负载均衡

赞同

0

回复举报

回答于2021-07-23 17:07



回复阿拉灯神丁
回复

一个反向代理的服务器抛开所有业务层的东西,只单纯的接下请求再返回,那么可以支持到20000并发了。接下来应用层面谁来处理?找来10个小弟,转发给他们,每人2000正好。这样这个节点系统虽然性价比只有10/11,但是性能潜力好歹挖尽了。

赞同

0

回复举报

回答于2020-05-08 10:38



回复xixihaha
回复
提问者
0守望0
这家伙很懒还未留下介绍~
1
文章
1
问答
1
粉丝
相关问答

那就用wireshark

点赞 0
浏览 1.8k

1、找不到,就会要求用户重新登陆,这由页面逻辑而定;

2、不同的上游服务都从同1个redis等中心化服务上存取session,就可以通用;

3、用http_cookie_变量取出cookie的值,再基于它进行哈希路由也是一个解决办法(Tengine上的session sticky是做这个的,但不支持开源Nginx;OpenResty上的upstream_list也有同样的效果,支持官方Nginx;其实官方Nginx的map模块也能实现同样的效果)

点赞 0
浏览 883

如果多个请求(包括匹配到不同的location)你配置的key相同,且都使用了同一个zone,那么是共享的

点赞 0
浏览 951