Nginx配置负载均衡(upstream)+反向代理(httpproxy)

首先准备3台机器(固然是vm虚拟机),一台用来作负载均衡服务器,2台web服务,分别都安装上nginx,怎么安装nginx这里就不在叙述。 html

IP规划 => 负载均衡服务器:10.1.1.10   |  web-1:10.1.1.11  |  web-2:10.1.1.12 nginx

另外为了测试的顺利请在以前先把3台机器的防火墙都关掉,把web-1和web-2的index.html改为不一样内容(好比本机IP)后面访问的时候好看效果。 web

如下配置均在 nginx.conf中进行 浏览器

负载均衡服务器配置

upstream webservers {  //upstream实现负载均衡
    server 10.1.1.11 weight=1;
    server 10.1.1.12 weight=1;
}
注:upstream配置应在http内,server外,webservers这是个标识,由本身定义,供后续使用。weigth:权重 ,值越大,被重定向到的概率越大 服务器

location / { #proxy实现反向代理
    proxy_pass   http://webservers; #这里的webservers就是上面定义的,将请求转发到上面upstream中配置的ip上
    proxy_set_header  X-Real-IP  $remote_addr; #将请求源ip塞到header头中的X-Real-IP上转发到web服务器上,此句做用为了使web服务器能获取客户端请求的真实IP
}
负载均衡

 

web服务器配置

set_real_ip_from  10.1.1.10; #负载均衡服务器IP
real_ip_header    X-Real-IP; 测试

注:加这2行配置后才能获取到访问请求的真实IP,否则永远拿到的都是负载均衡服务器的IP,此配置须要在编译nginx的时候加上 --with-http_realip_module 参数才能成功,不然失败。 spa

 

测试

配置完后nginx.conf后,输入命令:/nginx安装目录/sbin/nginx -t 测试一把看看配置是否正确,没错误就启动nginx 代理

在浏览器里面输入负载均衡服务器的ip,刷新就会看到页面内容来回变化,说明请求在2台web服务器之间切换,达到分流、均衡请求的目的 server

是否是很简单,赶忙去试一把,瞬间就让你逼格提高很多哦 (*^__^*)

后记:对于已经安装了nginx的机器,可经过命令: /nginx安装目录/sbin/nginx -V 查看编译参数,若是没有加 --with-http_realip_module 这个编译参数,能够在源码包下面从新加上这个参数编译,configure后make(不要make install),而后拷贝objs下面的nginx覆盖现有的nginx既可

相关文章
相关标签/搜索