一、反向代理
准备两台机器,一台是nginx的反向代理服务器,一台是普通的web网站
反向代理服务器配置
# 客户端访问192.168.11.59实际上访问192.168.11.169
server {
listen 80;
server_name 192.168.11.59;
location / {
# 设置反向代理
proxy_pass http://192.168.11.169;
#root html;
#index index.html index.htm;
}
}
web服务器配置
server {
listen 80;
server_name 192.168.11.169;
location / {
# 只允许访问该目录
allow 192.168.11.59;
# 禁止所有ip访问该目录
deny all;
root html;
index index.html index.htm;
}
}
二、集群
集群即多台服务器合作工作
集群的特点:
高性能
价格有效性
可伸缩性
高可用性
透明性
三、负载均衡的实现
服务器A:nginx负载均衡
服务器B:web服务器
服务器C:web服务器
服务器A配置
# 定义负载均衡池
upstream nginx_pool {
# #ip_hash 默认是轮询算法,ip_hash是每个请求按访问IP的hash结果分配,这样来自同一IP的固定访问一个后端服务器
server 192.168.11.169;
server 106.12.83.215;
}
server {
listen 80;
server_name 192.168.11.59;
location / {
# 将访问的ip发送至web端
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# 设置反向代理
proxy_pass http://nginx_pool;
}
}
nginx负载均衡算法
轮询 按时间顺序逐一分配到不同的后端服务器(默认)
weight 加权轮询,weight值越大,分配到的访问几率越高
ip_hash 每个请求按访问IP的hash结果分配,这样来自同一IP的固定访问一个后端服务器
url_hash 按照访问URL的hash结果来分配请求,是每个URL定向到同一个后端服务器
least_conn 最少链接数,那个机器链接数少就分发