集群架构-架构演变-接入负载均衡

一、负载均衡选型

负载均衡选型说明
硬件性能越高,价格越贵
开源软件nginx(openresty),haproxy,lvs
云产品云负载均衡

二、负载均衡极速上手指南

2.1环境准备

角色ip主机名服务
负载均衡10.0.0.5/172.16.1.5lb01nginx
web服务器10.0.0.7/172.16.1.7web01nginx+php
web服务器10.0.0.8/172.16.1.8web02nginx+php
数据库db01mariadb
存储nfs01nfs

2.2web准备

##这里以web01为列
#创建子配置文件
vim /etc/nginx/conf.d/lb.oldboy.cn.conf

#内容:
server {
listen 80;
server_name lb.oldboy.cn;
root /app/code/lb;
location / {
index index.html;
}
}

#检查
nginx -t

#重新启动nginx
systemctl restart nginx

#创建lb目录
mkdir -p /app/code/lb

#写入内容
echo web01 lb.oldboy.cn > /app/code/lb/index.html

2.3负载准备与配置

#安装nginx
yum -y install nginx

#创建子配置文件
vim /etc/nginx/conf.d/lb.oldboy.cn.conf

#内容:
upstream lb_group {
server 10.0.0.7:80;
server 10.0.0.8:80;
}
server {
listen 80;
server_name lb.oldboy.cn;
location / {
proxy_pass http://lb_group;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-Ip $remote_addr;
}
}

#检查语法
nginx -t

#重新启动nginx
systemctl restart nginx

#最后写入hosts
10.0.0.5 lb.oldboy.cn

效果如下:

再次刷新

三、nginx中proxy_set_header功能

  • proxy_set_header让nginx向后发送请求的时候带上一些header(请求头)

4.1Host头

  • 负载均衡中web服务器有多个站点,需要配置负载-web请求Host头信息
  • 保留用户请求的域名
proxy_set_headerHost$http_host;
修改lb-webHost获取用户Host

4.2XFF头

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-Ip $remote_addr;

五、负载均衡轮询算法

算法说明
rr轮询默认的类似于循环
wrr加权轮询给节点增加权重
least_conn最小连接数最小连接数,根据后端节点连接情况动态分配.
least_time最小连接时间最小连接时间,连接时间最短的处理请求.
ip_hash ip哈希对客户端ip地址进行hash计算,结果一致的访问相同的节点
ip不变就会一直访问相同的后端节点.
可以解决一些会话问题(登录),容易导致负载不均.
url_hash url哈希对请求的url进行hash计算,url一致不变就会访问到相同的节点.缓存服务器
一致性哈希算法对ip_hash改进,可以使用
hash $remote_addr consistent;

六、cookie与session

共同点区别搭配使用
cookie存放用户信息放在客户端浏览器中cookie存放密钥(钥匙)
session存放用户信息放在服务器(文件形式,数据库,redis)session(锁头)
egrep -v ‘^ *$|;’ /etc/php-fpm.d/www.conf

[www]
user = www
group = www
listen = 127.0.0.1:9000
listen.acl_users = apache,nginx
listen.allowed_clients = 127.0.0.1
pm = dynamic
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 35
slowlog = /var/log/php-fpm/www-slow.log
php_admin_value[error_log] = /var/log/php-fpm/www-error.log
php_admin_flag[log_errors] = on
php_value[session.save_handler] = files
php_value[session.save_path] = /var/lib/php/session
php_value[soap.wsdl_cache_dir] = /var/lib/php/wsdlcache
  • session共享(会话共享,会话保持)方案

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇