nginx + PHP 实现负载均衡

一、多台服务器
192.168.1.1 主
192.168.1.2 辅1
192.168.1.3 辅2

主服务器nginx 配置

# 负载均衡模块
upstream ceshi.com {
  server 192.168.1.2:80;
  server 192.168.1.3:80;
  server 192.168.1.1:8080; #主服务器 可用127.0.0.1 也可以不加本机
}

# 代理到本机8080端口 80已经被占用做转发 本机可不配置项目
server{
        listen 8080;
        server_name ceshi.com;
        index index.html;
        root /www/wwwroot;
}
#监听80端口的访问,转发
server{
        listen 80;
        server_name ceshi.com;
        location / {
                proxy_pass http://ceshi.com;
}

辅服务器配置

server{
        listen 80;
        server_name ceshi.com;
        root /www/wwwroot;
        location / {
                index index.html;
        }
}

负载均衡四种模式
一 、轮询 (默认)
二、weight 权重
weight和访问比率成正比,用于后端服务器性能不均的情况。如下所示,2的访问比率要比1的访问比率高一倍。
用法
upstream url {
server ip:端口 weight=1;
server ip:端口 weight=2;
}
三、ip_hash
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。
用法
upstream url{
ip_hash;
server ip:端口;
server ip:端口;
}
四、 fair(第三方)
后端服务器的响应时间来分配请求,响应时间短的优先分配。与weight分配策略类似。

upstream url{
server ip:端口;
server ip:端口;
fair;
}
五、url_hash
按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。
注意:在upstream中加入hash语句,server语句中不能写入weight等其他的参数,hash_method是使用的hash算法。

upstream url{
server ip:端口;
server ip:端口;
hash $request_uri;
hash_method crc32;
}

你可能感兴趣的:(linux,nginx,负载均衡)