Nginx七层负载均衡
/usr/local/nginx/conf/nginx.conf # nginx配置文件
client-nginx-rs-n-c # 访问流程
1. 用户创建
useradd -M -d /usr/local/nginx/ -s /sbin/nologin nginx # 创建nginx用户
2. worker设置
nginx -s reload # 每次修改完配置后,需要重载
根据CPU的核心数自动设定
3. worker_connections设定
Linux中的设定规则是kernel>system>app
sysctl -a | grep file # 查看内核
ulimit -a # 查看系统
vim /etc/security/limits.conf
4. 负载均衡
官方文档:https://docs.nginx.com/nginx/admin-guide/load-balancer/http-load-balancer/
- 在real server上修改http监听端口
- 在备用机器上修改http配置
成功实现了7层的负载均衡
说明:正常情况下,负载均衡;异常情况下访问备用机。
5. 负载均衡算法优化
5.1 weight(权重)
5.2 ip_hash
来自同一个客户端请求会发往同一个后端服务器交互(数据库),这种场景不适合来回切换,比较合理。
5.3
客户端访问代理(调度器),代理再去访问real server。流量首先会经过CDN代理,那么IP HASH就无法获取到真实的客户端IP。
浏览器cookie 记录信息,访问服务器。独一无二的。
-
安装nginx-goodies-nginx-sticky-module-ng-08a395c66e42模块
-
重新修改配置和编译,不要install
cd nginx-1.27.1/
make clean
ls /root/nginx-goodies-nginx-sticky-module-ng-08a395c66e42
./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_stub_status_module --add-dynamic-module=/root/nginx-goodies-nginx-sticky-module-ng-08a395c66e42
nginx -s stop
make
cp objs/nginx /usr/local/nginx/sbin/nginx
浏览器中访问,服务器不会变。