• nginx集群配置


    作者:夕阳小子
    时间:2017-5-1
    优化思路:
    Nginx层面:
    解决: nginx.conf 下面: work_connection 加大
    worker_connections 10240;
    Worker_rlimit_nofiles 10000;
    Keepalive_timeout 0;
    系统层面
    1: 内核层面,加大连接数,并加快tcp回收
    2: mysql层面,增大连接数
    3: php层面,用长连接,节省连接数
    4: 用memcached缓存,减轻mysql负担
     
    A服务器:nginx
    B服务器:mysql
    C服务器:php-fpm进程服务器
    D服务器:memcached服务器5-8个
     
     
     
     
     
    A,B,C,D四台服务器防火墙全部关掉 service iptables stop,防火墙用硬件防火墙
    每台服务器都做以下优化:
    系统内核层面:
    net.core.somaxconn = 4096 允许等待中的监听
    net.ipv4.tcp_tw_recycle = 1 tcp连接快速回收
    net.ipv4.tcp_tw_reuse = 1 tcp连接重用
    net.ipv4.tcp_syncookies = 0 不抵御洪水攻击
    ulimit -n 30000
     
    安装php-fpm
     
     
     
     
     
     
    php-fpm配置
    分别增加5个php-fpm配置文件:php-fpm.conf php-fpm9001.conf php-fpm9002.conf php-fpm9003.conf php-fpm9004.conf
    分别做一下配置,监听不同端口
    Pm = static 让fpm进程始终保持,不要动态生成
    Pm.max_children= 32 始终保持的子进程数量
    写一个shell脚本方便全部php-fpm进程
     
    Nginx服务器
    相关优化
    Nginx层面:
    解决: nginx.conf 下面: work_connection 加大
    worker_connections 10240;
    Worker_rlimit_nofiles 10000;
    Keepalive_timeout 0;
     
     
    memcahced服务器
    安装
    1. 查找Memcached
    yum search memcached
    首先检查yum软件仓库中是否存在memcached,如果有 直接进入第3步安装即可,否则执行第2步。
     
    2. 安装第三方软件库(可选)
    标准的CentOS5软件仓库里面是没有memcache相应的包的,所以,我们的第一步就是导入第三方软件仓库,这里推荐的是RpmForge(RpmForge库现在已经拥有超过10000种的CentOS的软件包,被CentOS社区认为是最安全也是最稳定的一个第三方软件库),安装方法如下:
    wget http://dag.wieers.com/rpm/packages/rpmforge-release/rpmforge-release-0.5.2-2.rf.src.rpm
    rpm -ivh rpmforge-release-0.5.2-2.rf.src.rpm
     
    3.安装Memcached
    yum -y install memcached
     
    4.验证安装
    memcached -h
    /etc/rc.d/init.d/memcached status
     
    5. 查看配置文件
    cat /etc/sysconfig/memcached
    可以根据情况修改相关配置参数:
    PORT="11211" USER="memcached" MAXCONN="1024" CACHESIZE="64" OPTIONS=""
     
    6.启动memcached
    /etc/rc.d/init.d/memcached start
     
    nginx 配置
     
     
    Mysql服务器
    数据准备:
    大概12w的数据
     
    代码准备:bench.php
     
     
     
    接下来进行压力测试
    分别用两台服务的apache ab压力测试工具进行测试:目标是3000个并发,50w个请求
    时时观测:status
     
     
     
    测试结果:80%-90%响应在3-8秒之间,整个nginx集群负载还是很不错的;仅仅是做了简单的压力测试,在实际的业务场景中,还需要具体的问题分析,找到问题所在,看是服务器瓶颈还是系统瓶颈,或者是软件(nginx,mysql,php....),再进行相关的优化,把最快的响应给用户,就是我们的目标。
  • 相关阅读:
    python—虚拟环境搭建
    pytnon—线程,进程
    python——新excel模块之openpyxl
    装饰器——应用
    css样式
    HTML
    广图登陆知网下载资源教程
    使用k-近邻算法改进约会网站的配对效果
    k-近邻算法概述
    机器学习基础
  • 原文地址:https://www.cnblogs.com/chengzhi59/p/6794431.html
Copyright © 2020-2023  润新知