开启三台虚拟机
192.168.83.128
192.168.83.129
192.168.83.130
分别配置好nginx, php, php-fpm,并且可以在浏览器访问php程序
做好访问日志记录
nginx主机
192.168.83.131 只需安装nginx,接受请求,并实现转发(反向代理)
配置nginx.conf
主要部分:
upstream myfastcgi {
# ip_hash; upstream支持的负载均衡算法,默认是轮训,可不用设置
server 192.168.83.128 weight=1; # 默认80端口,192.168.83.128:80
server 192.168.83.129 weight=1;
server 192.168.83.131 weight=1;
}
server {
listen 80;
server_name one.code.com;
index index.php index.html;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
location / {
proxy_pass http://myfastcgi;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /mydata/data;
}
error_page 404 /404.html;
location = /40x.html {
root /mydata/data;
}
}
在本机批量访问nginx主机,查看三台主机的访问日志,验证结果。
for($i=0;$i<100;$i++){
file_get_contents('http://192.168.83.131/api/test.php');
}
四种负载均衡算法:轮训(默认),ip_hash,fair,url_hash
参考:https://blog.youkuaiyun.com/xlxxcc/article/details/52641063
1.轮询(默认)——每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
2.weight ——指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。
3. ip_hash ——每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器。
4.backup——其它所有的非backup机器down或者忙的时候,请求backup机器。所以这台机器压力会最轻。
5.down——表示单前的server暂时不参与负载
6.fair(第三方)按后端服务器的响应时间来分配请求,响应时间短的优先分配。与weight分配策略类似。
正向代理:A本机,B代理,C目标;在A上指定B为代理,类似于翻墙;在浏览器输入C地址,被B截获并由B发起请求,B返回结果到浏览器,但是地址栏还是C的,
反向代理:A本机,B目标,C幕后;A请求B,但是B没有结果资源,B去请求C得到结果,B返回给A;