12.10 小结

本章介绍的upstream机制也属于HTTP框架的一部分,它同样是基于事件框架实现了异步访问上游服务器的功能,同时,它并不满足于仅仅帮助应用级别的HTTP模块基于TCP访问上游,而是提供了非常强大的转发上游响应功能,而且在转发方式上更加灵活、高效,并且对于内存的使用相当节省,这些功能帮助Nginx的ngx_http_proxy_module模块实现了强大的反向代理功能。同时,配合着ngx_http_upstream_ip_hash_module或者Round Robin相关的代码(它们负责管理ngx_peer_connection_t上游连接),ngx_http_upstream_next方法还可以帮助HTTP模块实现简单的负载均衡功能。

由于upstream机制属于HTTP框架,所以它仅抽象出了通用代码,而尽量地把组装发往上游请求、解析上游响应的部分都交给使用它的HTTP模块实现,这使得使用upstream的HTTP模块不会太复杂,而性能却非常高效,算是在灵活性和简单性之间找到了一个平衡点。在阅读完本章后,我们就有可能写出非常强大的访问第三方服务器的代码了,在这个过程中,尽量使用upstream已经提供的各种功能,将会简化HTTP模块的开发过程。