设为首页 收藏本站
查看: 820|回复: 0

[经验分享] 负载均衡(Nginx)使用教程

[复制链接]

尚未签到

发表于 2018-11-15 06:35:42 | 显示全部楼层 |阅读模式
  Nginx实例
  //************说明*************//
  此文章基于Nginx对多台tomcat服务器进行负载均衡
  //************准备工作*************//
  nginx安装包下载:http://nginx.org/en/download.html
  nginx在线手册:http://shouce.iyunv.net/nginx/index.html
  tomcat1:8081端口(本地安装启动)
  tomcat2:8082端口(本地安装启动)
  tomcat3:8080端口(局域网内安装启动)
  //************Nginx安装启动*************//
  本文采用的是较为稳定的nginx-1.11.1版本
  ①:直接解压到相关路径(本文解压在E盘下)
  ②:启动主要有两种方式,如下:
  1、直接双击nginx.exe启动(注:正常是一闪而过)
DSC0000.png

  2、用命令提示符切换到nginx目录下,输入start nginx.exe或者start nginx启动(一闪而过)
DSC0001.png

  以上2种方法用于启动nginx服务,可通过进程管理查看是否有nginx进程(如:nginx.exe *32)或者通过浏览器输入localhost查看页面是否如下:
DSC0002.png

  浏览器出现如上页面,则表示nginx启动成功
  //************Nginx常用命令*************//
  start nginx :启动nginx服务
  nginx -s stop :停用或结束nginx服务

  nginx -s>  //************tomcat服务准备*************//
DSC0003.png

  3台tomcat服务器启动完成,(本机2台,局域网内1台)
  //************Nginx配置文件修改*************//
  nginx.conf(路径:E:\nginx-1.11.1\conf\nginx.conf)
############负载均衡配置###########  
    upstream localhost {
  
    server 192.168.1.103:8080;
  
    server 192.168.1.103:8081;
  
    server 192.168.1.154:8080;
  
    }
  
    location / {
  
        root   html;
  
        index  index.html index.htm;
  
        proxy_pass  http://localhost;  #localhost与负载均衡upstream配置名称localhost 一致
  
    }
  在对整个文件不做任何修改的前期下,配置upstream、proxy_pass这两项即可完成负载均衡的配置。

  然后命令提示符执行nginx -s>
DSC0004.png

  端口为:8080的服务器
DSC0005.png

  本机端口为:8081的服务器
DSC0006.png

  局域网内端口为:8080的服务器
  //************nginx负载均衡的4种配置实例*************//
  1、轮询
  轮询即Round Robin,根据Nginx配置文件中的顺序,依次把客户端的Web请求分发到不同的后端服务器。
  配置的例子如下:
http{  
upstream localhost{
  
   server 192.168.1.103:8080;
  
   server 192.168.1.103:8081;
  
   server 192.168.1.154:8080;
  
}
  
....
  
server{
  
   listen 80;
  
   ...
  
   location / {
  
    proxy_pass http://localhost;
  
   }
  
}
  上面只有1个DNS入口被插入到upstream节,即sampleapp,同样也在后面的proxy_pass节重新提到。
  2、最少连接
  Web请求会被转发到连接数最少的服务器上。
  配置的例子如下:
http{  
  upstream localhost{
  
    least_conn;
  
    server 192.168.1.103:8080;
  
    server 192.168.1.103:8081;
  
    server 192.168.1.154:8080;
  
  }
  
  ....
  
  server{
  
    listen 80;
  
    ...
  
    location / {
  
     proxy_pass http://localhost;
  
    }
  
  }
  上面的例子只是在upstream节添加了least_conn配置。其它的配置同轮询配置。
  3、IP地址哈希
  前述的两种负载均衡方案中,同一客户端连续的Web请求可能会被分发到不同的后端服务器进行处理,因此如果涉及到会话Session,那么会话会比较复杂。常见的是基于数据库的会话持久化。要克服上面的难题,可以使用基于IP地址哈希的负载均衡方案。这样的话,同一客户端连续的Web请求都会被分发到同一服务器进行处理。
  配置的例子如下:
http{  
  upstream localhost{
  
    ip_hash;
  
    server 192.168.1.103:8080;
  
    server 192.168.1.103:8081;
  
    server 192.168.1.154:8080;
  
  }
  
  ....
  
  server{
  
    listen 80;
  
    ...
  
    location / {
  
     proxy_pass http://localhost;
  
    }
  
  }
  上面的例子只是在upstream节添加了ip_hash配置。其它的配置同轮询配置。
  4、基于权重的负载均衡
  基于权重的负载均衡即Weighted Load Balancing,这种方式下,我们可以配置Nginx把请求更多地分发到高配置的后端服务器上,把相对较少的请求分发到低配服务器。
  配置的例子如下:
http{  
  upstream localhost{
  
    server 192.168.1.103:8080 weight=2;
  
    server 192.168.1.103:8081 weight=5;
  
    server 192.168.1.154:8080;
  
  }
  
  ....
  
  server{
  
    listen 80;
  
    ...
  
    location / {
  
     proxy_pass http://localhost;
  
    }
  
}
  上面的例子在服务器地址和端口后weight=2的配置,这意味着,每接收到8个请求,前2个请求会被分发到第一个服务器,第3-7个请求会分发到第二个服务器,第8个请求会分发到第三台服务器,其它的配置同轮询配置。
  还要说明一点,基于权重的负载均衡和基于IP地址哈希的负载均衡可以组合在一起使用。
  注:文章多有不足之处,仅供参考!



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-635112-1-1.html 上篇帖子: 关于nginx的master进程可worker进程的概念 下篇帖子: Nginx演练(4)配置内容缓存
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表