nginx负载均衡简单配置

准备三台虚拟机来做这个实验:

172.16.100.6        web服务器
172.16.100.7        web服务器
172.16.100.106    负载均衡服务器


首先三台电脑装好nginx软件:

向web服务器中放入测试文件:

1
2
3
4
5
6
7
8
< html >    
< head >    
< title >Welcome to nginx!</ title >    
</ head >    
< body  bgcolor = "white"  text = "black" >    
< center >< h1 >Welcome to nginx! 172.16.100.6</ h1 ></ center >    
</ body >    
</ html >


配置负载均衡服务器:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
vi  /usr/local/nginx/conf/nginx .conf
 
user nginx nginx;worker_processes  1;
 
events {
     worker_connections  1024;
}
 
http {
     include       mime.types;
     default_type  application /octet-stream ;    
     sendfile       on;
     keepalive_timeout  65;
     upstream webservs {
         server 172.16.100.6 weight=1;
         server 172.16.100.7 weight=1;
     }
     
     server {
         listen     8083;
         server_name  localhost;
         index index.html index.htm index.php; 
          location / {
              proxy_pass webservs;
            proxy_set_header X-Real-IP $remote_addr;
         }
                 
          error_page   500 502 503 504   /50x .html;
         location =  /50x .html {
             root   html;
         }
     }
}


拓展:

要在server之外定义upstream ,upstream可以定义多个名称,但每一个upstream都要有自己独立的名称
upstream里有很多的子指定,其中server用来定义每一个后端服务器;每一个后端还可以传递很多参数,weight权重,没有权重为0,不做负载均衡的,权重一样就轮调,权重不一样实现加权轮调,还可以实现端口映射;定义server时只能定义名称或是IP地址,不能使用协议http。

1
2
3
4
5
6
7
8
9
10
upstream backend {
     server backend1.example.com weight=5;
     server backend2.example.com:8080;
     server unik:/tmp/backend3;
}
server{
     location / {
         proxy_pass http://backend;    //反向代理不是某些主机,而是upstream定义的名称,,由upstream来实现负载均衡功能
     }
}

      本文转自ling118 51CTO博客,原文链接:http://blog.51cto.com/meiling/1896267,如需转载请自行联系原作者