nginx 配置轮询分流-实现负载均衡
做php2年多了,一直觉得这个玩意很高深,最近总想去了解下。今天抽时间,弄了感觉这个东西没有想象的那么难弄。简单的实现,确实非常容易,但是足可以实现负载均衡分布的功能了。今天就给大家分享下,也算是一个小记录吧! 准备工作,3台服务器,或者开虚拟机吧!我就是开虚拟机实现的。 ip分别为:192.168.1.10 192.168.1.11 192.168.1.12
做php2年多了,一直觉得这个玩意很高深,最近总想去了解下。今天抽时间,弄了感觉这个东西没有想象的那么难弄。简单的实现,确实非常容易,但是足可以实现负载均衡分布的功能了。今天就给大家分享下,也算是一个小记录吧!
准备工作,3台服务器,或者开虚拟机吧!我就是开虚拟机实现的。
ip分别为:192.168.1.10 192.168.1.11 192.168.1.12 (环境:安装了ngixn 没有做任何配置)
3台服务器环境最好一样,我是再vm里直接克隆出来的,环境绝对一样吧!不一样,我估计会遇到很多奇怪的问题,没试过。
192.168.1.10 作为 负载均衡服务器 (一会负载均衡就在这里台服务器做配置,另外2台不用做配置)
先了解下负载一些常见知识
nginx 的 upstream目前支持 4 种方式的分配 1)、轮询(默认) 每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。 2)、weight 指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。 2)、ip_hash 每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。 3)、fair(第三方) 按后端服务器的响应时间来分配请求,响应时间短的优先分配。 4)、url_hash(第三方) |
可以开始配置了。打开192.168.1.10 的nginx.conf 只需要在配置文件增加如下代码
- upstream www.129.com {
- server 192.168.1.11:80;
- server 192.168.1.12:80;
- }
- server {
- listen 80;
- server_name www.juzheke.com;
- location / {
- proxy_pass http://www.juzheke.com;
- proxy_set_header Host $host;
- proxy_set_header X-Real-IP $remote_addr;
- proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
- }
- access_log logs/access_log;
- error_log logs/error_log;
- }
实践结果:
http://www.juzheke.com 我通过修改host 指向了 192.168.1.10
为了使测试结果明显,我修改了ngixn默认页面的html
vi /usr/local/nginx/html/index.html
再index.html 加入显示本机ip
192.168.1.11 和 192.168.1.12 都要修改,这样测才明显
我通过本机浏览器,输入 http://www.juzheke.com
每次刷新,都会跳转到不同的服务器上页面(当然我这个是为了明显所以用的是轮询的方式,大家可以根据自己需求进行修改)
更多推荐
所有评论(0)