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....),再進行相關的優化,把最快的響應給用戶,就是我們的目標。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM