(1) 反向代理后端如果有多台服务器,自然可形成负载均衡,但proxy_pass如何指向多台服务器?
答:把多台服务器用 upstream指定绑定在一起并起个组名,然后proxy_pass指向该组
(2)默认的均衡的算法很简单,就是针对后端服务器的顺序,逐个请求.也有其他负载均衡算法,如一致性哈希,需要安装第3方模块
-----------------------------------------------
实现过程[假设以图片服务器为案例]:
(1)开启http信息头记录
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"';
(2)定义服务组
upstream imgserver{
#max_fails 连接2次 fail_timeout 超过多长时间超时 server 127.0.0.1:81 weight=1 max_fails=2 fail_timeout=3; server 127.0.0.1:82 weight=1 max_fails=2 fail_timeout=3;
}
(3)指向服务器组名
location ~* \.(jpg|jpeg|gif|png)$ {
#设置http信息头 记录来源地址 proxy_set_header X-Forwarded-For $remote_addr; #指向图片服务器组名 proxy_pass http://imgserver;
}
(4)建立两台虚拟服务器
server{
listen 81; server_name 127.0.0.1; root html; #写入日志 access_log logs/81-access.log main;
} server{
listen 82; server_name 127.0.0.1; root html; #写入日志 access_log logs/81-access.log main; }
(5)解析php程序
location ~ \.php$ { #增加http信息头 显示来源地址。 proxy_set_header X-Forwarded-For $remote_addr; proxy_pass http://127.0.0.1:8080;
}
转载于:https://www.cnblogs.com/hgj123/p/4266817.html