1、准备工作:1、关闭 Selinux 2、负载均衡的种类:
2、开启防火墙对应端口
1)一种是通过硬件来进行解决,常见的硬件有 NetScaler、F5、Radware 和 Array 等商用的 负载均衡器,但是它们是比较昂贵的
2)一种是通过软件来进行解决的,常见的软件有 LVS、Nginx、apache 等,它们是基于 Linux
系统并且开源的负载均衡策略.
Nginx 的特点是占有内存少,并发能力强,事实上 nginx 的并发能力确实在同类型的网页服 务器中表现最好,中国大陆使用 nginx 网站用户有:新浪、网易、 腾讯等。
nginx 的 upstream 目前支持 3 种方式的分配:
1)、轮询(默认) 每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器 down 掉,能自动剔除。
2)、weight 权重 ——you can you up
指定轮询几率,weight 和访问比率成正比,用于后端服务器性能不均的情况。
3)、ip_hash ip哈希算法
每个请求按访问 ip 的 hash 结果分配,这样每个访客固定访问一个后端服务器, 可以解决 session 的问题。
配置负载均衡
找到 /etc/nginx/conf.d 然后在里面新建对应网站的配置文件
upstream bakeaaa {
ip_hash;
server 127.0.0.1:3001 weight=1;
server 127.0.0.1:3002 weight=1;
server 192.168.1.129:3001 weight=3;
}
server {
listen 80;
server_name www.aaa.com;
#charset koi8-r;
#access_log /var/log/nginx/host.access.log main;
location / {
#设置主机头和客户端真实地址,以便服务器获取客户端真实 IP
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
#禁用缓存
proxy_buffering off;
proxy_pass http://bakeaaa;
}
location /socket.io {
# 此处改为 socket.io 后端的 ip 和端口即可
proxy_pass http://127.0.0.1:3001;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_http_version 1.1;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
重启
重启
nginx systemctl restart nginx
nginx -t 看配置是否正确
systemctl stop nginx
systemctl start nginx
防火墙配置
添加:
firewall-cmd --zone=public --add-port=80/tcp --permanent
重新载入:
firewall-cmd --reload