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