前言
上次我写了一篇Nginx的安装文章,既然已经安装了,这次就写一下如何配置反向代理,通过反向代理实现负载均衡
反向代理原理
停止Nginx,备份配置文件
上次我们的nginx安装在/etc/nginx目录内
停止Nginx
/etc/nginx/sbin/./nginx -s stop
然后进入安装后的配置文件目录cd /etc/nginx/conf
先进行配置文件备份,以防万一出现问题可以恢复(改文件前先备份是个好习惯)
cp nginx.conf nginx.conf.bak
编辑nginx.conf配置文件
vi nginx.conf
进入vi编辑模式,找到
http{
...//省略几行
server{
listen 80;
server_name localhost; #charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html;
index index.html index.htm;
}
}
}
更改location内容为:
location / {
proxy_pass ;
#浏览器访问Nginx的IP或者网址
}
(proxy_pass表示将通过使用所设IP对Nginx进行的请求通过代理分发,xxx要改成你们自己IP)
然后我们在http内,server外写入
http{
...//省略
#proxy_pass代理到所需分发请求IP群
upstream 101.201.xxx.xxx{
server 101.201.xxx.xxx:8080;
server 101.202.xxx.xxx:8081;
server 101.203.xxx.xxx:8082;
}
server{
...//省略
}
}
最后我们启动Nginx即可
/etc/nginx/sbin/./nginx
试一试在浏览器中访问Nginx
是不是可以直接进入到我们在upstream中配置的IP应用中了呢?
扩展
Nginx的负载均衡方式有常用的4种
1.轮询模式(默认,如前例)
2.weight 权重模式(通过配置权重来应对服务器性能不均时的情况,数值为访问比例) ip_hashIP指定(每个请求按访问ip的hash结果分配,同一个用户IP请求固定指向第一次为其所分配的后端服务器,session不会因为服务器不同的问题找不到)
3.fair 第三方模块(按后端服务器的响应时间来分配请求,响应时间短的优先分配。与weight分配策略类似)
4.url_hash 第三方模块(按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端在配置了缓存时比较有效)
weight 权重模式举例
当第二个服务器配置较好时可以多分配一些权重,而第三个服务器分配数量最少
当使用IP指定时加入ip_hash即可
upstream 101.201.xxx.xxx{
server 101.201.xxx.xxx:8080 weight=3;
server 101.202.xxx.xxx:8080 weight=6;
server 101.203.xxx.xxx:8080;
ip_hash;
}
fair(第三方)
upstream 101.201.xxx.xxx{
server 101.201.xxx.xxx:8080;
server 101.202.xxx.xxx:8080;
server 101.203.xxx.xxx:8080;
fair;
}
url_hash(第三方)
指定hash时,加入hash_method与weight不可同时使用
upstream 101.201.xxx.xxx{
server 101.201.xxx.xxx:8080;
server 101.202.xxx.xxx:8080;
server 101.203.xxx.xxx:8080; hash$request_uri;
hash_method crc32;
}
更多精彩内容请关注“IT实战联盟”哦~~~