14
Drupal 多伺服器手札 James Liu / 神の豚

[DCTPE2011] 8) 多伺服器/高效能的Drupal 主機解決方案--James Liu

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: [DCTPE2011] 8) 多伺服器/高效能的Drupal 主機解決方案--James Liu

Drupal 多伺服器手札

James Liu / 神の豚

Page 2: [DCTPE2011] 8) 多伺服器/高效能的Drupal 主機解決方案--James Liu

伺服器效能不足

Page 3: [DCTPE2011] 8) 多伺服器/高效能的Drupal 主機解決方案--James Liu

既然一台不行,那就兩台吧…

圖片來源:噗浪

Page 4: [DCTPE2011] 8) 多伺服器/高效能的Drupal 主機解決方案--James Liu

新伺服器環境

Page 5: [DCTPE2011] 8) 多伺服器/高效能的Drupal 主機解決方案--James Liu

Apache Proxy / Load Balance

• 統一的對外IP• 工作量的分配

– 實體Load balance可調整分配比例

• 即時切換過載伺服器

Page 6: [DCTPE2011] 8) 多伺服器/高效能的Drupal 主機解決方案--James Liu

Reverse Proxy / IP Patch

• User -> www.cool3c.com -> 45.www.cool3c.com

• Drupal 5:proxy-5.patch, ip.patch• Drupal 6:settings.php (bootstrap.inc)• 在settings.php修正

$_SERVER[‘HTTP_HOST’]

Page 7: [DCTPE2011] 8) 多伺服器/高效能的Drupal 主機解決方案--James Liu

User picture / files

• 自己來

– 寫個PHP通知其他人

– Rsync同步

• CDN Module (6 up)• 共用Files

Page 8: [DCTPE2011] 8) 多伺服器/高效能的Drupal 主機解決方案--James Liu

MySQL Replication

• 1 Master, 2 Slave• 分散Select負荷

• Master很重要!

Page 9: [DCTPE2011] 8) 多伺服器/高效能的Drupal 主機解決方案--James Liu

MySQL Replication 排除

• 排除準則

– 經常更新

– Cache– Log

• 目的

– 降低同步錯誤的發生

– 降低同步資源

Page 10: [DCTPE2011] 8) 多伺服器/高效能的Drupal 主機解決方案--James Liu

db_url Patch

• drupal_replication.patch– 讓系統支援Slave資料庫連結

• 根據伺服器,讓程式直接對本機資料庫存取

• 修正資料庫連結錯誤,增加容錯率

Page 11: [DCTPE2011] 8) 多伺服器/高效能的Drupal 主機解決方案--James Liu

資料表強制導向

• _db_query_is_slave_safe()

• 導向準則

– 變動較低

– 大量Query– 使用Join

• 目的

– 減少程式調整

– 方便整體控制

Page 12: [DCTPE2011] 8) 多伺服器/高效能的Drupal 主機解決方案--James Liu

負載量

• Apache connection ↑• MySQL connection ↑

– Multi Master ?• 同一時間可處理的使用者變多了

Page 13: [DCTPE2011] 8) 多伺服器/高效能的Drupal 主機解決方案--James Liu

伺服器...….們

• 伺服器掛掉也能繼續運作

• 二台->三台->…– 接受更多的服務

– 管理更多的電腦

– 規劃、統一的重要性

Page 14: [DCTPE2011] 8) 多伺服器/高效能的Drupal 主機解決方案--James Liu

感謝各位的收聽XD