一、nginx负载均衡说明
nginx仅仅是作为NGINX PROXY反向代理使用的,因为这个反向代理功能表现的效果是负载均衡,和真正的负载均衡还是有区别的。
负载均衡产品是转发用户的请求包,而nginx反向代理是接收用户的请求然后重新发起请求区请求后面的节点。
实现nginx负载均衡的组件主要有两个
ngx_http_proxy_module proxy代理模块,用于请求后抛给服务器节点或upstream 服务器池
ngx_http_upstream_module 负载均衡模块,可以实现网站的负载均衡功能及节点的健康检查
二、配置说明:
使用3台服务器,LB01作为负载均衡器 ,web01和web02作为网页服务器
web01和web02的 主要配置如下
worker_processes 1;events { worker_connections 1024;}http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_refere"' '"$http_user_agent" "$http_x_forwarded_for"'; server { listen 80; server_name bbs.hbgd.com;: location / { root html/bbs; index index.html index.htm; } access_log logs/access_bbs.log main; error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } server{ listen 80; server_name www.hbgd.com; location / { root html/www; index index.html index.htm; } access_log logs/access_www.log main; } }
说明,这里做了个虚拟主机bbs.hbgd.com 和www.hbgd.com
然后编写index主页文件,如下所示:
然后检查语法,重启web01和web02的nginx服务
web01和 web02配置hosts文件后,相互测试
三、配置简单的负载均衡
LB01的配置文件如下所示:
worker_processes 1;events { worker_connections 1024;}http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; upstream www_server_pools { #定义WEB服务器池,包含了两个WEB节点 server 172.31.208.93:80 weight=1; #采用权重轮询算法 server 172.31.208.94:80 weight=1; } server { #此处定义代理的负载均衡域名虚拟主机 listen 80; server_name www.hbgd.com; #charset koi8-r; #access_log logs/host.access.log main; location / { proxy_pass http://www_server_pools; #访问www.hbgd.com 请求发送给www_server_pools里面的节点 proxy_set_header Host $host; #在代理后端服务器发送的httpd请求头中加入host字段信息,用于当后端服务器配置有多个虚拟主机时,可以识别代理 #的时哪个虚拟机主机,这是节点服务器多虚拟主机的关键配置 proxy_set_header X-Forwarded-For $remote_addr; #在代理向后端服务器发送的http请求头部中加入X-Forwarde-for字段信息,用于后端服务器程序,日志等接受记录真实用户的ip, #而不是代理服务器的IP include proxy.conf; #包含的配置 } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } }
检查完成成后,重启lb01上的nginx服务
然后再客户端访问www.hbgd.com,bbs.hbgd.com,可以看到每次访问请求都会被分配到不同服务,权重算法生效