Nginx集群配置

来源:互联网 发布:scopus数据库简介 编辑:程序博客网 时间:2024/05/22 17:04
作者:夕阳小子
时间: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....),再进行相关的优化,把最快的响应给用户,就是我们的目标。

0 0