上一篇我们为两台Web服务器搭建了JDK+Tomcat的Web运行环境,并部署了一个测试工程并成功运行,那么这次要进行Nginx服务器的配置,使其能够对两台Web服务器这个小集群来做负载均衡。
三台服务器均搭建在VMware虚拟机上,信息如下:
Nginx服务器的IP:192.168.248.129
Web服务器A的IP:192.168.248.131
Web服务器A的IP:192.168.248.132
对于Nginx服务器,我们回到192.168.248.129这台安装了Nginx的机器上,打开之前安装的Nginx的根目录:
可以看到,根目录中有一个conf文件夹,其中放置的是Nginx的配置文件:
在其中有一个名为“nginx.conf”的配置文件,它是Nginx的核心配置文件。使用“vim”指令查看“nginx.conf”文件,内容如下:
在该文件中,配置分为以下几类:
(1)进程数与每个进程的最大连接数
配置如下:
worker_processes指的是工作进程个数,一般跟服务器cpu核数相等,或者核数的两倍;
events就是对进程事件进行相关配置的,其中的worker_connections指的是单个进程最大连接数,该服务器的最大连接数=连接数*进程数;服务器支持最大并发数=(连接数*进程数) /2 ,因为反向代理是双向的。
(2)Nginx的基本配置
server就是对http访问服务的响应配置,其中的listen是监听的http端口,默认为80,这里我们改为8080。而server_name是配置的http响应的服务名,默认为localhost ,这里修改为Nginx的服务器ip地址。
(3)负载均衡列表基本配置
首先是服务器集群的配置信息:
这里upstream后面的“mycluster”是集群配置的名称,其中配置的server信息为服务器集群中的每一台机器对应的http服务的ip地址,weight代表该服务在集群中的权重,权重越大,请求被分配给该服务的机会就越大。这里添加的是之前部署了Web工程的两台Web服务器的ip地址和端口。
然后是请求转发的响应策略location,后面的“/”是针对该服务器的所有http请求做出的响应,当然可以自定义响应类型添加筛选,假如我们要对所有的html后缀的请求进行负载均衡时,可以这样写:location ~ .*.html$ {}。
其它参数解释见下方注释。
介绍完重点配置,下面就需要完成本次负载均衡的配置。符合本次负载均衡测试的配置文件的完整配置信息如下:
将conf修改后(如果嫌修改麻烦,直接在windows系统中编写完毕,使用ftp替换该文件即可),重新启动nginx:
然后在windows系统的浏览器中输入Nginx所在服务器对外的http负载均衡服务路径:
http://192.168.248.129:8080/Test_project/ 则会发现访问到了我们其中一台Web系统的页面:
如果反复访问多次,即可发现两边的Web服务均可以某种几率访问到:
说明我们为小集群搭建的Nginx负载均衡策略成功了。
总结:
上下两篇分别介绍了Web服务集群的搭建,以及Nginx的反向代理实现Web服务进行负载均衡的实例。
使用Nginx搭建负载均衡十分简单,仅需要配置其核心配置文件“nginx.conf”即可。但是演示的例子仅仅是一个非常简单的入门级负载均衡实例,以后还需要考虑到配置优化、Session共享、高可用等问题。