憨豆说安全 · 2020年08月11日

云芯一号教程 - Nginx 负载均衡配置教程

  Nginx是一个高性能的HTTP和反向代理WEB服务器。Nginx具有占用内存小,并发能力强的特点,是搭建WEB服务的常用工具。
  反向代理的两个重要作用是隐藏应用服务器和负载均衡。我们在《Nginx 反向代理配置教程》中详细描述反向代理的配置过程,下面在此基础上来配置负载均衡功能。

1.负载均衡
  受硬件条件的限制,一台应用服务器的响应能力是有限的。当用户的访问量超过了一台应用服务器的处理能力时,就需要增加应用服务器,或者搭建应用服务器集群。这时,反向代理就可以根据配置的权重向多台应用服务器转发请求,避免单台服务器能力不足的问题。

2.配置负载均衡
  在sites-enabled新增监听8000端口虚拟主机,可以直接拷贝default配置进行修改。目录结构如下:

  firefly@firefly:/etc/nginx/sites-enabled$ ls
  8000  8080  8090  default  

  8000端口的虚拟主机配置为:

  upstream test_http {
          server localhost:8080 weight=1;
          server localhost:8090 weight=2;
  }
  
  server {
          listen 8000 default_server;
  
          server_name _;
  
          location / {
              proxy_pass http://test_http;
          }
  }

  Nginx通过upstream来定义一组提供相同服务的服务器,如配置文件中的8080端口和8090端口WEB服务器。
  当用户访问服务器8000端口时,Nginx会反向代理到upstream定义的服务器组,达到负载均衡的目的。默认情况下,Nginx按照加权轮转的方式将请求分发到各服务器,权重越高,转发到的概率越高。

3.验证负载均衡
  配置修改好之后,需要重启Nginx服务。

  sudo service nginx restart

  服务重启后,来验证一下负载均衡功能。

  jishu@Jishu:~$ curl http://192.168.1.11:8000
  bbbbbbbbbb
  jishu@Jishu:~$ curl http://192.168.1.11:8000
  bbbbbbbbbb
  jishu@Jishu:~$ curl http://192.168.1.11:8000
  aaaaaaaaa
  jishu@Jishu:~$ curl http://192.168.1.11:8000
  bbbbbbbbbb
  jishu@Jishu:~$ curl http://192.168.1.11:8000
  bbbbbbbbbb
  jishu@Jishu:~$ curl http://192.168.1.11:8000
  aaaaaaaaa 

  从curl命令访问情况来看,转发到8090端口服务器的概率比较高,符合weight定义,负载均衡功能配置成功。

推荐阅读
关注数
4278
内容数
71
低成本Arm微服务器开发平台“云芯1号”教程及应用,欢迎关注
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息