本文主要是介绍Nginx(5)---使用nginx作为负载均衡器,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
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; } }
}
运行完命令后,检查nginx是否启动
2.7、测试
打开浏览器窗口,在地址栏中输入http://localhost/index.jsp查看结果
结果:通过刷新浏览器可以看到同一个地址访问的有时是tomcat1服务器、有时是tomcat2服务器
结果表明,通过nginx可以缓解服务器压力,实现应用程序的负载均衡。
这篇关于Nginx(5)---使用nginx作为负载均衡器的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!