nginx负载均衡简单配置
准备三台虚拟机来做这个实验:
172.16.100.6 web服务器
172.16.100.7 web服务器
172.16.100.106 负载均衡服务器
首先三台电脑装好nginx软件:
向web服务器中放入测试文件:
<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>
配置负载均衡服务器:
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。
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来实现负载均衡功能 } }