博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Nginx(5)---使用nginx作为负载均衡器
阅读量:4087 次
发布时间:2019-05-25

本文共 1839 字,大约阅读时间需要 6 分钟。

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处端口,如下:

 

修改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可以缓解服务器压力,实现应用程序的负载均衡。

你可能感兴趣的文章
Koa2框架原理解析和实现
查看>>
vue源码系列文章good
查看>>
你不知道的Virtual DOM
查看>>
VUE面试题总结
查看>>
写好JavaScript条件语句的5条守则
查看>>
原生JS中DOM节点相关API合集
查看>>
【TINY4412】U-BOOT移植笔记:(7)SDRAM驱动
查看>>
【TINY4412】U-BOOT移植笔记:(12)BEEP驱动
查看>>
单链表的修改和删除
查看>>
C++的三个基本特征:封装、继承、多态
查看>>
C++虚函数的总结
查看>>
什么是URL地址?
查看>>
C++多态的实现方式总结
查看>>
学习C++需要注意的问题
查看>>
C++模板
查看>>
C++双冒号(::)的用法
查看>>
【Unity】封装SQLite管理类
查看>>
【Unity】面试题整理
查看>>
【C#】如何实现一个迭代器
查看>>
【Unity】Destroy和DestroyImmediate的区别
查看>>