Nginx 作为反向代理的优化点(二)

0

在上一篇 Nginx 反向代理的优化点一 中简单介绍了反向代理服务与上游服务通信时开启 HTTP/1.1,看似一个简单的指令却能优化服务间网络传输的性能。本篇继续介绍另一个容易被忽视的优化点:buffer 缓冲区。

Nginx 与上游服务通信时可以把返回的响应内容(包含响应头 header 和响应体 body )存入到缓冲区,当缓冲区的数据积累到一定的体积再一并发送给客户端。

缓冲区的开关通过 proxy_buffing 指令来配置,默认是开启的。如果 Nginx 代理的只是常规 API 服务时,默认的配置可以很好的工作,但是当上游服务返回的响应内容的体积较大时,此时默认的内存缓冲区容易被存满,内存缓冲区存满后则会将响应体作为临时文件写入到磁盘,在请求完成后再删除临时文件。

阅读全文 »

Nginx 作为反向代理的优化点(一)

使用 Java / Node.js / Go 等语言开发的 Web 服务通常会使用 Nginx 作为反向代理服务来实现负载均衡等功能,此时的 Web 服务相对于 Nginx 来说就是上游服务(upstream)。

一般在优化 Web 服务的性能时都会聚焦在 Web 服务本身,而容易忽视 Nginx 和上游服务之间的连接。Nginx 有很多带 proxy 前缀的指令,通常在配置反向代理时往往以为配置一个 proxy_pass 就完事了,但是在追求 Web 服务的极致性能时还有一些反向代理的配置能起到事半功倍的效果。本文将简单介绍 Nginx 作为反向代理时选择 HTTP 协议的版本。

阅读全文 »