CentOS 下 Nginx + Tomcat 负载均衡配置

为什么要做负载均衡?

当你网站是一个企业站、个人博客的时候,或者访问量比较小的时候,一台服务器完全应付的了,那就完全没必要做负载均衡。但是,如果你的网站是平台级别,用户至少百万级别了,一台服务器明显撑不住了,那就要考虑多台服务器,这个时候每个服务器分配多少用户,负载均衡是最好的解决方式。举个大的不是很恰当的栗子:淘宝网。

对于互联网服务,负载平衡器通常是一个软体程序,这个程序侦听一个外部端口,互联网用户可以通过这个端口来访问服务,而作为负载平衡器的软体会将用户的请求转发给后台内网服务器,内网服务器将请求的响应返回给负载平衡器,负载平衡器再将响应发送到用户,这样就向互联网用户隐藏了内网结构,阻止了用户直接访问后台(内网)服务器,使得服务器更加安全,可以阻止对核心网络栈和运行在其它端口服务的攻击。

当所有后台服务器出现故障时,有些负载平衡器会提供一些特殊的功能来处理这种情况。例如转发请求到一个备用的负载平衡器、显示一条关于服务中断的消息等。负载平衡器使得IT团队可以显著提高容错能力。它可以自动提供大量的容量以处理任何应用程序流量的增加或减少。(摘自维基百科)

怎么做?

这里我们用 Nginx 做负载均衡,Nginx 是一款面向性能设计的 HTTP ,稳定性高的反向代理服务器,可以做负载均衡和 HTTP缓存。

基于上篇的安装路径,配置 nginx.conf :

  1. <span class="pln">vi </span><span class="pun">/</span><span class="pln">usr</span><span class="pun">/</span><span class="kwd">local</span><span class="pun">/</span><span class="pln">nginx</span><span class="pun">/</span><span class="pln">conf</span><span class="pun">/</span><span class="pln">nginx</span><span class="pun">.</span><span class="pln">conf</span>

CentOS 下 Nginx + Tomcat 负载均衡配置

配置代码:

  1. <span class="pln">upstream mysite </span><span class="pun">{</span>
  2. <span class="pln">server </span><span class="lit">192.168</span><span class="pun">.</span><span class="lit">198.128</span><span class="pun">:</span><span class="lit">8080</span><span class="pun">;</span>
  3. <span class="pln">server </span><span class="lit">192.168</span><span class="pun">.</span><span class="lit">198.128</span><span class="pun">:</span><span class="lit">8090</span><span class="pun">;</span>
  4. <span class="pun">}</span>
  5. <span class="pln">server </span><span class="pun">{</span>
  6. <span class="pln">listen </span><span class="lit">80</span><span class="pun">;</span>
  7. <span class="pln">server_name localhost</span><span class="pun">;</span>
  8. <span class="com">#charset koi8-r;</span>
  9. <span class="com">#access_log logs/host.access.log main;</span>
  10. <span class="pln">location </span><span class="pun">/</span><span class="pun">{</span>
  11. <span class="pln">root html</span><span class="pun">;</span>
  12. <span class="pln">index index</span><span class="pun">.</span><span class="pln">html index</span><span class="pun">.</span><span class="pln">htm</span><span class="pun">;</span>
  13. <span class="pln">proxy_pass http</span><span class="pun">:</span><span class="com">//mysite;</span>
  14. <span class="pun">}</span>

上边的192.168.198.128:8080192.168.198.128:8090对应的两个不同的网站页面,这里我只是在两个不同的 Tomcat 下放了两个静态页面,在浏览器输入192.168.198.128刷新,你会看到在这两个 Tomcat 之间一替一次切换请求。

CentOS 下 Nginx + Tomcat 负载均衡配置

刷新:
CentOS 下 Nginx + Tomcat 负载均衡配置

不同服务器分配不同的数量的用户

这样 nginx 也是支持的,只需要配置upstream节点不同服务器的权重就好了。我这里按 1:3 进行的演示配置。

CentOS 下 Nginx + Tomcat 负载均衡配置

配置完成。

注意:目前这种简单负载均衡配置,并不能共享 Session。

更多Nginx负载均衡配置相关教程见以下内容

Nginx 的详细介绍:请点这里
Nginx 的下载地址:请点这里

相关推荐