nginx 配置轮询分流-实现负载均衡

做php2年多了,一直觉得这个玩意很高深,最近总想去了解下。今天抽时间,弄了感觉这个东西没有想象的那么难弄。简单的实现,确实非常容易,但是足可以实现负载均衡分布的功能了。今天就给大家分享下,也算是一个小记录吧!

    准备工作,3台服务器,或者开虚拟机吧!我就是开虚拟机实现的。

    ip分别为:192.168.1.10  192.168.1.11  192.168.1.12   (环境:安装了ngixn 没有做任何配置)

    3台服务器环境最好一样,我是再vm里直接克隆出来的,环境绝对一样吧!不一样,我估计会遇到很多奇怪的问题,没试过。


    192.168.1.10  作为  负载均衡服务器  (一会负载均衡就在这里台服务器做配置,另外2台不用做配置)

     

   先了解下负载一些常见知识

   

nginx 的 upstream目前支持 4 种方式的分配 
1)、轮询(默认) 
      每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。 
2)、weight 
      指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。 
2)、ip_hash 
      每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。  
3)、fair(第三方) 
      按后端服务器的响应时间来分配请求,响应时间短的优先分配。  
4)、url_hash(第三方)

    可以开始配置了。打开192.168.1.10 的nginx.conf  只需要在配置文件增加如下代码

[html]  view plain copy
  1. upstream  www.129.com  {  
  2.           server   192.168.1.11:80;  
  3.           server   192.168.1.12:80;  
  4. }  
  5.   
  6. server {  
  7.   listen 80;  
  8.   server_name www.juzheke.com;  
  9.   location / {  
  10.      proxy_pass        http://www.juzheke.com;  
  11.      proxy_set_header   Host             $host;  
  12.      proxy_set_header   X-Real-IP        $remote_addr;  
  13.      proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;  
  14.   }  
  15.   access_log logs/access_log;  
  16.   error_log logs/error_log;  
  17. }  

实践结果:  

    http://www.juzheke.com  我通过修改host 指向了  192.168.1.10

    为了使测试结果明显,我修改了ngixn默认页面的html

    vi /usr/local/nginx/html/index.html 
   再index.html 加入显示本机ip

  192.168.1.11 和  192.168.1.12  都要修改,这样测才明显

    我通过本机浏览器,输入 http://www.juzheke.com

    每次刷新,都会跳转到不同的服务器上页面(当然我这个是为了明显所以用的是轮询的方式,大家可以根据自己需求进行修改)


  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
NGINX是一款非常流行的开源HTTP和反向代理服务器,同时它也是一个常用的负载均衡器。轮询负载均衡是一种常用的负载均衡策略,它按照一定的顺序将请求分发到不同的后端服务器上。 在NGINX中,可以使用以下配置实现轮询负载均衡: 1. 配置文件:在NGINX配置文件中,可以使用`http`块来配置负载均衡策略。通常,该配置文件位于`/etc/nginx/nginx.conf`或`/etc/nginx/conf.d/default.conf`。 2. 设置上游服务器列表:在`http`块中,需要定义一个或多个上游服务器列表。可以使用`server`块来配置每个服务器,包括其地址、端口和其他配置。这些服务器通常代表了多个运行着Web应用程序的后端服务器。 3. 启用轮询负载均衡:在NGINX配置文件中,可以使用`proxy_pass`指令将请求分发到后端服务器。通过将`proxy_pass`指令设置为上游服务器列表的顺序,可以实现轮询负载均衡。例如: ```arduino http { upstream backend { server backend1.example.com; server backend2.example.com; server backend3.example.com; } server { listen 80; location / { proxy_pass http://backend; } } } ``` 在上面的示例中,`backend`是一个上游服务器列表,包含了三个后端服务器的地址。当客户端向NGINX服务器发送请求时,NGINX将根据轮询策略将请求分发到相应的后端服务器。 4. 配置轮询策略:NGINX支持多种轮询策略,包括轮询、最少连接、IP哈希等。默认情况下,NGINX使用轮询策略。可以通过在`upstream`块中设置`round_robin`指令来启用轮询策略。例如: ```arduino upstream backend { server backend1.example.com round_robin; server backend2.example.com; server backend3.example.com; } ``` 在上面的示例中,通过将每个上游服务器的地址与`round_robin`指令一起设置,启用了轮询策略。NGINX将根据顺序将请求分发到后端服务器。 5. 动态调整负载:如果需要动态调整负载均衡策略或后端服务器的权重,可以使用NGINX的动态模块。例如,可以使用ngx_http_realip_module模块获取客户端的IP地址,并根据IP地址动态调整权重。 请注意,上述配置仅提供了一个基本的轮询负载均衡的示例。实际配置可能因环境和需求而有所不同。建议在进行配置之前仔细阅读NGINX的文档和指南,并根据需要进行适当的调整和测试。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值