反向代理:
配置反向代理:
proxy_pass url;
注意:反向代理之后,获取客户端ip地址为nginx服务器地址,这里需要nginx进行forward,设置真实的ip地址:
设置客户端真实ip地址
proxy_set_header X-real-ip $remote_addr;
server {
listen 8088;
server_name localhost;
location / {
# root static;
proxy_set_header X-real-ip $remote_addr;
proxy_pass http://127.0.0.1:8080;
}
}
===========================================================
设定负载均衡的服务器列表
max_fails :允许请求失败的次数默认为1.当超过最大次数时,返回proxy_next_upstream 模块定义的错误
fail_timeout:max_fails次失败后,暂停的时间
upstream myproject {
weigth参数表示权值,权值越高被分配到的几率越大
max_fails 当有#max_fails个请求失败,就表示后端的服务器不可用,默认为1,将其设置为0可以关闭检查
fail_timeout 在以后的#fail_timeout时间内nginx不会再把请求发往已检查出标记为不可用的服务器
}
#webapp
upstream myapp {
server 192.168.122.133:8080 weight=1 max_fails=2 fail_timeout=30s;
server 192.168.122.134:8080 weight=1 max_fails=2 fail_timeout=30s;
}
Nginx 负载均衡策略
1、轮询(默认)
2、指定权重 #server 192.168.0.12 weight=5;
3、ip_hash
upstream backserver {
ip_hash;
server 192.168.0.14:88;
server 192.168.0.15:80;
}
4、fair(第三方)
按后端服务器的响应时间来分配请求,响应时间短的优先分配。
upstream backserver {
server server1;
server server2;
fair;
}
5、url_hash(第三方)
按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。
upstream backserver {
server 192.168.0.15:3128;
server 192.168.0.16:3128;
hash $request_uri;
hash_method crc32;
}