服务器之家:专注于服务器技术及软件下载分享
分类导航

云服务器|WEB服务器|FTP服务器|邮件服务器|虚拟主机|服务器安全|DNS服务器|服务器知识|Nginx|IIS|Tomcat|

服务器之家 - 服务器技术 - Nginx - 教你快速构建一个基于nginx的web集群项目

教你快速构建一个基于nginx的web集群项目

2022-01-10 16:48未末0902 Nginx

本文教你快速构建一个基于nginx的4/7层负载均衡的web集群项目,项目步骤本文给大家介绍介绍,对nginx web集群项目感兴趣的朋友一起看看吧

一 ·项目环境

centos7/8服务器8台、nginx 1.21.1、ab、nfs4、
zabbix、keepalived 2.1.5 、ansible,bind

二· 项目描述

构建一个基于nginx的4/7层负载均衡的web集群项目

模拟企业的业务环境达到构建一个高并发高可用的web集群。

通过压力测试来检验整个集群的性能,找出瓶颈,不断的去优化。

三· 项目步骤

1.安装

安装部署ansible服务,和其他的服务器之间建立免密通道,编写playbook去安装部署nginx和zabbix

2.配置

通过ansible上去部署nginx和zabbix,配置好nginx长连接,并发数,和worker的进程数,限制速度以及zabbix的相关配置等,上传网站内容(搭建一个WordPress的博客系统或者flask接口网站等)

3.实现负载均衡

使用2台服务器做双vip的负载均衡器,使用nginx的4/7层负载均衡功能实现,调度算法使用加权轮询

4.搭建服务器

搭建nfs服务器,保障网站的数据一致性,并且设置后端的real-server/backend server开机自动挂载

5.压力测试

在客户机上使用ab软件进行压力测试

6.监控

在zabbix/prometheus监控平台上添加相关的服务器和监控项,监控整个web集群的性能 --》zabbix

7.高可用

使用keepalived软件给负载均衡器做高可用,防止单点故障 --》keepalived

8.域名解析

搭建一个dns服务器,给整个web集群进行域名解析,通过dns域名解析负载均衡将2个vip绑定到一个域名给用户访问使用,从而将流量导入到不同的负载均衡器上

9.提升性能

尝试去优化整个web集群,提升性能:内核参数,nginx参数的优化,考虑加缓存等措施

10.使用ansible编写playbook

尝试全部使用ansible编写playbook安装所有的软件: nginx,zabbix,keepalived,ab,nfs等

四· 项目总结

1.慢慢理解了集群的概念,从1台到多台
2.对高性能和高可用有了一定的认识,对系统的性能指标参数有了一定的认识,对脑裂现象有了一定的了解和如何避免
3.对一键部署和安装有了一定的了解,非常的方便和快捷,今后尝试更加好的自动化操作 --》ansible
4.对压力测试下整个集群的瓶颈有了一个整体的概念
5.对系统的优化有了一些认识,感觉非常的有必要,在不增加成本的情况下提升性能
6.对监控也有了一点接触,监控是非常基础的运维工作,可以提前看到问题,做好预警。
7.对今后学习大规模的集群打下基础,整体规划的能力得到提升
8.troubleshooting的能力得到了提升
9.对很多基础功能的软件的配合有了一定的了解,例如:zabbix,keepalived,ansible,nginx,nfs,ab,bind等
10.对dns负载均衡,4/7层负载均衡有了一定了解

五·搭建WEB注意

1.web网站的内容,需要你确定: 博客,接口网站,测试页面等
数据的一致性问题: NFS,san,云存储,NAS等

2.内核参数的优化:

 

?
1
[root@docker ~]# sysctl -p
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
net.ipv4.ip_forward = 0
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
kernel.core_uses_pid = 1
net.ipv4.tcp_syncookies = 1
kernel.msgmnb = 65536
kernel.msgmax = 65536
net.ipv4.conf.all.promote_secondaries = 1
net.ipv4.conf.default.promote_secondaries = 1
net.ipv6.neigh.default.gc_thresh3 = 4096
net.ipv4.neigh.default.gc_thresh3 = 4096
kernel.softlockup_panic = 1
net.ipv6.conf.all.disable_ipv6 = 0
net.ipv6.conf.default.disable_ipv6 = 0
net.ipv6.conf.lo.disable_ipv6 = 0
kernel.shmmax = 68719476736
kernel.printk = 5
kernel.sysrq = 1
kernel.numa_balancing = 0
[root@docker ~]# ulimit
unlimited
[root@docker ~]# ulimit -a
core file size          (blocks, -c) unlimited
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 14826
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 100001
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 14826
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited
[root@docker ~]#
 
ab  -c 2000 -n 100000  http://192.168.0.92/

到此这篇关于构建一个基于nginx的web集群项目的文章就介绍到这了,更多相关nginx web集群项目内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/qq_45737042/article/details/121515491

延伸 · 阅读

精彩推荐
  • Nginx通过Nginx规则重写URL去掉index.php不显示index.php

    通过Nginx规则重写URL去掉index.php不显示index.php

    Nginx不仅占用内存少,并发能力强,而且拓展功能丰富,可以通过安装模板来强化功能,也能通过规则优化,优化服务器并发处理能力,是建站的不二之选...

    Genius日记5872020-10-16
  • NginxNginx Rewrite使用场景及代码案例详解

    Nginx Rewrite使用场景及代码案例详解

    这篇文章主要介绍了Nginx Rewrite使用场景及代码案例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可...

    盗哥泡茶去了11862020-09-27
  • NginxNginx location 和 proxy_pass路径配置问题小结

    Nginx location 和 proxy_pass路径配置问题小结

    本文是基于 location 的匹配末尾是否配置 / 和 proxy_pass 末尾是否配置 / ,进行测试,完全还原了整个测试过程,本文给大家介绍Nginx location 基本配置及相关配...

    自由早晚乱余生18742021-09-24
  • Nginxnginx rewrite 伪静态配置参数和使用例子

    nginx rewrite 伪静态配置参数和使用例子

    nginx下伪静态配置参数详细说明,使用nginx的朋友,nginx rewrite 伪静态配置参数和使用例子 附正则使用说明 ...

    服务器之家3102019-10-08
  • Nginxnginx ssl免密码重启教程详解

    nginx ssl免密码重启教程详解

    这篇文章给大家介绍了nginx 如何启动以及nginx ssl 免密码重启 的方法,非常不错,具有参考借鉴价值,需要的朋友参考下吧 ...

    mrr4272019-11-19
  • NginxNginx动静分离实现案例代码解析

    Nginx动静分离实现案例代码解析

    这篇文章主要介绍了Nginx动静分离实现案例代码解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参...

    盗哥泡茶去了3382020-09-27
  • Nginx如何优化Nginx的处理性能

    如何优化Nginx的处理性能

    Nginx是一个很强大的高性能Web和反向代理服务,它具有很多非常优越的特性,在连接高并发的情况下,Nginx是Apache服务不错的替代品。其特点是占有内存少,...

    Dockone.io5142020-12-11
  • Nginx利用nginx和腾讯云免费证书制作https的方法

    利用nginx和腾讯云免费证书制作https的方法

    这篇文章主要介绍了利用nginx和腾讯云免费证书制作https的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧 ...

    dalaoyang5992019-12-30