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

目录
  • 一 ·项目环境
  • 二· 项目描述
  • 三· 项目步骤
    • 1.安装
    • 2.配置
    • 3.实现负载均衡
    • 4.搭建服务器
    • 5.压力测试
    • 6.监控
    • 7.高可用
    • 8.域名解析
    • 9.提升性能
    • 10.使用ansible编写playbook
  • 四· 项目总结
  • 五·搭建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.内核参数的优化:

[root@docker ~]# sysctl -p
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集群项目内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Keepalived+Nginx+Tomcat 实现高可用Web集群的示例代码

    Keepalived+Nginx+Tomcat 实现高可用Web集群 一.Nginx的安装过程 1.下载Nginx安装包,安装依赖环境包 (1)安装 C++编译环境 yum -y install gcc #C++ (2)安装pcre yum -y install pcre-devel (3)安装zlib yum -y install zlib-devel (4)安装Nginx 定位到nginx 解压文件位置,执行编译安装命令 [root@localhost nginx-1.12.2]# pwd

  • nginx+apache+mysql+php+memcached+squid搭建集群web环境

    服务器的大用户量的承载方案一.前言 二.编译安装 三. 安装MySQL.memcache 四. 安装Apache.PHP.eAccelerator.php-memcache 五. 安装Squid 六.后记 一.前言,准备工作当前,LAMP开发模式是WEB开发的首选,如何搭建一个高效.可靠.稳定的WEB服务器一直是个热门主题,本文就是这个主题的一次尝试.我们采用的架构图如下: 引用-------- ---------- ------------- --------- ------------| 客

  • 采用软件负载均衡器实现web服务器集群(iis+nginx)

    我用nginx实现网站负载均衡测试的例子,windows下IIS做负载实测. 如果你的网站访问量(pv)越来越高,一台服务器已经没有办法承受流量压力,那就增多几台WEB服务器来做负载吧. 做网站负载可以买硬件设备来实现,我们公司用的是F5,不过价格就几十万到上百万,太贵了, 目前好多门户网站与大访问量的网站都在使用nginx做为HTTP服务器,所以nginx是非常优秀的,下面我亲手做这个负载测试吧. 软/硬件环境: (2台服务器) 第一台:  CPU:Inter(R) 酷睿 i5 CPU 2.2

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

    目录 一 ·项目环境 二· 项目描述 三· 项目步骤 1.安装 2.配置 3.实现负载均衡 4.搭建服务器 5.压力测试 6.监控 7.高可用 8.域名解析 9.提升性能 10.使用ansible编写playbook 四· 项目总结 五·搭建WEB注意 一 ·项目环境 centos7/8服务器8台.nginx 1.21.1.ab.nfs4. zabbix.keepalived 2.1.5 .ansible,bind 二· 项目描述 构建一个基于nginx的4/7层负载均衡的web集群项目 模拟企

  • 基于Docker部署Tomcat集群、 Nginx负载均衡的问题小结

    写在前面 看完Dokcer相关的书籍,正好有个项目要这样搞,所以自己练习一下. 当作一百世一样.这里的道理很明白:我思故我在,既然我存在,就不能装作不存在.无论如何,我要为自己负起责任.--王小波<三十而立> 结构图: 这里仅作为一种学习,一般这种负载的话,Nginx是放到主机侧的, JavaWeb(Tomcat)应用放到容器里. 效果 新建文件夹. D=uag;mkdir $D;cd $D;mkdir uag_nginx uag_tomcat8; ls uag_nginx uag_tomca

  • 详解三分钟快速搭建分布式高可用的Redis集群

    这里的Redis集群指的是Redis Cluster,它是Redis在3.0版本正式推出的专用集群方案,有效地解决了Redis分布式方面的需求.当单机内存.并发.流量等遇到瓶颈的时候,可以采用这种Redis Cluster方案进行解决. 分区规则 Redis Cluster采用虚拟槽(slot)进行数据分区,即使用分散度良好的哈希函数把所有键映射到一个固定范围的整数集合里,这里的整数就是槽(slot).Redis Cluster槽的范围是0~16383,计算公式:slot=CRC16(key)

  • 基于Docker搭建iServer集群

    目录 前言 一.安装Docker 二.下载 iServer 镜像 三.启动iServer 四.发布服务 五.搭建集群 前言 Linux容器虚拟技术(LXC,Linux Container)是一种轻量级的虚拟化手段,它利用内核虚拟化技术提供轻量级的虚拟化,来隔离进程和资源.Docker扩展了LXC,提供了更高级别的API,并简化了应用的打包和部署,为终端用户创建彼此独立的私有环境,可有效节约开发者和系统管理员的环境部署时间. 一.安装Docker 参考博客 https://www.runoob.c

  • centos环境下nginx高可用集群的搭建指南

    目录 1.概述 2.CentOS中nginx集群搭建 2.1 集群架构图 2.2 Keepalived 2.3 集群搭建准备 2.4 集群搭建 2.4.1 安装keepalived 2.4.2 配置keepalived.conf 2.4.3 编写nginx监测脚本 2.4.4 启动keepalived 2.4.5 启动nginx 2.4.6 测试 3.小结 4.参考文献 总结 1.概述 nginx单机部署时,一旦宕机就会导致整个服务的不可用,导致雪崩式效应.集群式部署是解决单点式雪崩效应的有效方

  • nginx高可用集群的实现过程

    这篇文章主要介绍了nginx高可用集群的实现过程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1.配置: (1)需要两台nginx服务器 (2)需要keepalived (3)需要虚拟ip 2.配置高可用的准备工作 (1)需要两台服务器192.168.180.113和192.168.180.112 (2)在两台服务器安装nginx (3)在两台服务器安装keepalived 3.在两台服务器安装keepalived (1)使用yum命令进行安

  • Docker如何使用nginx搭建tomcat集群(图文详解)

    首先创建tomcat的文件夹 ,为了方便docker的配置 我这里直接在根目录中创建第一步:创建文件夹:发布文件夹 mkdir -p /docker/tomcat/webapp8081 mkdir -p /docker/tomcat/webapp8082 mkdir -p /docker/tomcat/webapp8083 第二步:创建Tomcat容器(端口 可以根据自己的实际更换) docker run -d --name tomcat8081 -p 8081:8080 -v /docker/

  • 通过Nginx搭建Tomcat9集群并实现Session共享

    使用Nginx搭建Tomcat9集群,Redis实现Session共享 1.tomcat准备 首先准备两个tomcat9 ,修改配置文件server.xml 如果在多个服务器上分别启动tomcat 则不存在此问题. 2.实现Nginx集群 修改nginx.conf配置文件,实现集群 3.Redis实现Session 共享 在tomcat/lib 目录下添加以下三个jar 包 然后更改tomcat的context.xml文件 然后先启动redis服务,然后启动tomcat和nginx的服务. 以上

  • 一个基于flask的web应用诞生(1)

    基于flask的web应用的诞生,供大家参考,具体内容如下 Flask是一个非常优秀的web框架,它最大的特点就是保持一个简单而易于扩展的小核心,其他的都有用户自己掌握,并且方便替换,甚至,你可以在社区看到众多开源的,可直接用于生产环境下的扩展.到目前为止,我相信关于他的介绍以及非常的多,就算cnblog中,随便一搜也会有很多内容,但还是抛砖引玉,就当是一个自我的总结 部署环境 安装python 首先,当然是安装python环境,去官网来下载最新的环境(我选择最新的3.6版本) 然后一路下一步即

随机推荐