Nginx(5)---使用nginx作为负载均衡器

来源:互联网 发布:oc中往数组添加元素 编辑:程序博客网 时间:2024/06/05 11:00

1、使用nginx作为负载均衡器的目的?

当网站的访问量较大时,网站的速度会越来越慢,一台服务器已经不够用了。

此时,如果将网站应用程序部署在多台服务器上,将大量的用户请求分配给多台服务器进行处理,这样就可以缓解服务器的压力。


另外,这样做还有一个好处:万一其中一台服务器挂掉了,只要其它服务器还能正常运行,就不会影响用户的使用。


2、如何使用nginx实现负载均衡?

下面使用Nginx+Tomcat搭建高性能的负载均衡集群

2.1、原理图如下:



2.2、准备工具:nginx-1.10.3和apache-tomcat1、apache-tomcat2



2.3、修改上面两个tomcat的启动端口,分别为18080和28080.

打开tomcat的conf目录下的server.xml

共修改3处端口,如下:

<Server port="18005" shutdown="SHUTDOWN">  <Listener className="org.apache.catalina.startup.VersionLoggerListener" />

<Connector port="18080" protocol="HTTP/1.1"               connectionTimeout="20000"               redirectPort="8443" />

 <Connector port="18009" protocol="AJP/1.3" redirectPort="8443" />

 

修改tomcat2的端口,如上图


2.4、修改上面两个Tomcat的默认页面(目的:区分到底访问的是那一台Tomcat)

进入webapps--->ROOT,修改index.jsp

修改完后,浏览器地址栏中输入http://localhost:18080/index.jsp,显示如下图:



浏览器地址栏输入:http://localhost:28080/index.jsp,显示如下图:



2.5、进入nginx目录,然后打开conf文件,修改nginx.conf配置文件,如下

worker_processes  1;#工作进程的个数,一般与计算机的cpu核数一致    events {      worker_connections  1024;#单个进程最大连接数(最大连接数=连接数*进程数)  }    http {      include       mime.types; #文件扩展名与文件类型映射表      default_type  application/octet-stream;#默认文件类型        sendfile        on;#开启高效文件传输模式,sendfile指令指定nginx是否调用sendfile函数来输出文件,对于普通应用设为 on,如果用来进行下载等应用磁盘IO重负载应用,可设置为off,以平衡磁盘与网络I/O处理速度,降低系统的负载。注意:如果图片显示不正常把这个改成off。            keepalive_timeout  65; #长连接超时时间,单位是秒        gzip  on;#启用Gizp压缩            #服务器的集群      upstream  netitcast.com {  #服务器集群名字           server    127.0.0.1:18080  weight=1;#服务器配置   weight是权重的意思,权重越大,分配的概率越大。          server    127.0.0.1:28080  weight=2;      }           #当前的Nginx的配置      server {          listen       80;#监听80端口,可以改成其他端口          server_name  localhost; ##############   当前服务的域名        location / {              proxy_pass http://netitcast.com;              proxy_redirect default;          }                      error_page   500 502 503 504  /50x.html;          location = /50x.html {              root   html;          }      }  }  


2.6、启动nginx,进入cmd窗口命令如下:



运行完命令后,检查nginx是否启动


2.7、测试

打开浏览器窗口,在地址栏中输入http://localhost/index.jsp查看结果

结果:通过刷新浏览器可以看到同一个地址访问的有时是tomcat1服务器、有时是tomcat2服务器

   结果表明,通过nginx可以缓解服务器压力,实现应用程序的负载均衡。