要了解负载均衡模块的开发方法,首先需要了解负载均衡模块的使用方法。因为负载均衡模块与之前书中提到的模块差别比较大,所以我们从配置入手比较容易理解。 在配置文件中,我们如果需要使用ip hash的负载均衡算法。我们需要写一个类似下面的配置: [](http:// "点击提交Issue,反馈你的意见...") upstream test { ip_hash; server 192.168.0.1; server 192.168.0.2; } 从配置我们可以看出负载均衡模块的使用场景: 1. 核心指令”ip_hash”只能在upstream {}中使用。这条指令用于通知nginx使用ip hash负载均衡算法。如果没加这条指令,nginx会使用默认的round robin负载均衡模块。请各位读者对比handler模块的配置,是不是有共同点? 2. upstream {}中的指令可能出现在”server”指令前,可能出现在”server”指令后,也可能出现在两条”server”指令之间。各位读者可能会有疑问,有什么差别么?那么请各位读者尝试下面这个配置: [](http:// "点击提交Issue,反馈你的意见...") upstream test { server 192.168.0.1 weight=5; ip_hash; server 192.168.0.2 weight=7; } 神奇的事情出现了: [](http:// "点击提交Issue,反馈你的意见...") nginx: [emerg] invalid parameter "weight=7" in nginx.conf:103 configuration file nginx.conf test failed 可见ip_hash指令的确能影响到配置的解析。