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