nginx 集群部署

单台服务器受限于硬件资源,其性能是有上限的,当单台服务器不能满足应用场景的并发需求量时,就需要考虑部署多个服务器共同处理客户端的并发请求,但是客户端怎么知道去连接具体哪台服务器呢?

此时就需要一台负载均衡器,通过预设的负载算法,指导客户端连接服务器。
负载均衡器有基于客户端的负载均衡和服务器的负载均衡。
普通的基于哈希的负载算法,并不能满足负载均衡所要求的单调性和平衡性,但一致性哈希算法非常好的保持了这两种特性,所以经常用在需要设计负载算法的应用场景当中。

nginx配置tcp负载均衡在服务器快速集群环境搭建中,都迫切需要一个能拿来即用的负载均衡器,nginx在1.9版本之前,只支持http协议web服务器的负载均衡,从1.9版本开始以后,nginx开始支持tcp的长连接负载均衡,但是nginx默认并没有编译tcp负载均衡模块,编写它时,需要加入–with-stream参数来激活这个模块。

nginx编译加入–with-stream参数激活tcp负载均衡模块nginx编译安装需要先安装pcre、openssl、zlib等库,也可以直接编译执行下面的configure命令,根据错误提示信息,安装相应缺少的库。
下面的make命令会向系统路径拷贝文件,需要在root用户下执行
tony@tony-virtual-machine:~/package/nginx-1.12.2# ./configure --with-stream
tony@tony-virtual-machine:~/package/nginx-1.12.2# make && make install
编译完成后,默认安装在了/usr/local/nginx目录。
tony@tony-virtual-machine:~/package/nginx-1.12.2$ cd /usr/local/nginx/
tony@tony-virtual-machine:/usr/local/nginx$ ls
conf html logs sbin
可执行文件在sbin目录里面,配置文件在conf目录里面。

nginx -s reload 重新加载配置文件启动
nginx -s stop 停止nginx服务

nginx配置tcp负载均衡
主要在conf目录里面配置nginx.conf文件,配置如下:
配置完成后,./nginx -s reload平滑重启。

主要在conf目录里面配置nginx.conf文件,配置如下

在这里插入图片描述

hash $remote_addr consistent:基于hash的负载均衡,需要单独安装插件

proxy_timeout : 连接N秒后断开
proxy_connect_timeout:连接超过N秒就断开

配置完成后,./nginx -s reload平滑重启。

### Nginx 集群部署架构图示例 对于Nginx集群部署,通常会采用高可用性和负载均衡的设计来确保系统的稳定运行和服务的质量。下面是一个典型的Nginx集群部署架构图示例: #### 图形化表示 虽然无法直接绘制图形,可以描述一个常见的三层架构模型如下: 1. **客户端层** - 用户通过域名或IP地址发起HTTP/HTTPS请求。 2. **前端负载均衡器层** - 使用一台或多台作为入口节点的Nginx实例充当反向代理服务器。 - 这些实例负责接收来自外部网络的所有流量并将它们分发给后端的应用程序服务器。 - 可能还会集成健康检查机制以自动移除不健康的节点[^4]。 3. **应用服务层** - 多个应用程序服务器处理实际业务逻辑并返回响应数据给前端Nginx。 - 应用程序之间可以通过共享存储或其他方式同步状态信息以便于横向扩展[^3]。 4. **数据库与缓存层(可选)** - 如果涉及到持久化的读写操作,则需要额外设置专门用于保存数据的组件如MySQL, Redis等。 #### 文字说明配以命令片段展示如何实现上述架构中的某些特性 为了提高系统的可靠性,在配置文件中定义主备模式下的`upstream`模块参数时,可以在备用Nginx服务器上将 `state` 设置为 `BACKUP` ,并将 `priority` 设定成较低数值比如90,从而使得只有当其他活跃成员都不可用的时候才会切换到这台机器上去继续提供服务: ```nginx upstream backend { server 192.168.1.10 weight=5 max_fails=2 fail_timeout=30s; server 192.168.1.11 backup; # This is the backup server with lower priority. } ``` 另外,要使这些更改生效还需要重启Nginx服务,可通过执行以下Linux系统指令完成此操作[^5]: ```bash systemctl restart nginx ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

necesse

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值