伺服器叢集+負載均衡來支撐.
大的認識-------既然響應是不可避免的,我們要做的是把工作内容”平均”分給每台伺服器.
最理想的狀态 每台伺服器的性能都被充分利用.
Web伺服器 php mysql memcache
A:xxxxxxxx.111 裝有nginx伺服器的 存放了靜态的檔案 靜态資源
B:xxxxxxxx.118 裝有php-fpm進行解析php代碼的伺服器
C:xxxxxxxx.110 裝有mysql資料庫的 讀 111—寫,更新 删除
D:xxxxxxxx.108 裝有memcached 資料庫的 redis
Ab
一般的原則是 裝有mysql的伺服器 磁盤大一些 因為存儲資料
裝有nginx php-fpm 和memcached的伺服器 記憶體需要大一些
在阿裡雲上購買的伺服器 1台 A
RAM(記憶體): 2G
帶寬:5M,
CPU:2核
HD: 500G
10000萬Pv ip
(用來運作nginx/apache web伺服器 通路靜态檔案 單台伺服器通路靜态檔案可以并發10000(1s) 大約80%的使用者通路在1s之内)這樣可以說明nginx的性能是不錯的 1000
如果加上mysql,php肯定是會慢的了,并發量也相應的會減少,還需要看目前這個網站的性質是什麼,所謂的并發是不固定的。
一般能達到并發1500左右,相應時間大約75%左右在1s之内 就差不多
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsICM38CXlZHbvN3cpR2Lc1TPB10QGtWUCpEMJ9CXsxWam9CXwADNvwVZ6l2c052bm9CXUJDT1wkNhVzLcRnbvZ2Lc1TPB1keFRlTyUkaNBDOsJGcohVYsR2MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2LcRHelR3LcJzLctmch1mclRXY39TN1IjNycjM4ETMzgDM4EDMy8CX0Vmbu4GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpg)
步驟:
1: A号服:
編譯nginx ,并配置
存放靜态資源和靜态頁面的
2:B号伺服器
1.1安裝 mysql
存有大量的資料
3: C号伺服器:
2.1: 編譯PHP
注意: enbale-fpm , with-mysql=mysqlnd (編譯成獨立fpm程序,支援mysql,和memcached)
2.2: 下載下傳第3方的memcached擴充 編譯進來
4: D号服:
編譯 memcached,運作memcached伺服器
-----------------------------------------------------------分割線--------------------------------------------------------------------
以上是伺服器叢集的基本搭配基本與介紹,以下是配置檔案的配置
伺服器叢集與負載均衡搭建完畢
1:問題 B-->C 的mysql連接配接很慢
解決: my.cnf中的[mysqld]節點中,添加
skip-name-resolve // 這句話使mysql連接配接時忽略解析域名,在制定Mysql權限時,隻能根據IP限制,不能根據域名限制.
2: 問題 當memcache中沒有相應的資料,從背景回調資料時,
http的狀态碼是404,(雖然内容正常),這樣不利于SEO
解決: nginx/conf/nginx.conf
error_page 404 =200 /callback.php; // 這樣 404被改寫成200來響應中