663424 发表于 2017-2-10 17:28:46

nginx负载均衡简单配置

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_processes1;

events {
    worker_connections1024;
}

http {
    include       mime.types;
    default_typeapplication/octet-stream;   
    sendfile       on;
    keepalive_timeout65;
    upstream webservs {
      server 172.16.100.6 weight=1;
      server 172.16.100.7 weight=1;
    }
   
    server {
      listen   8083;
      server_namelocalhost;
      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来实现负载均衡功能
    }
}



页: [1]
查看完整版本: nginx负载均衡简单配置