2015-09-20 23 views
1

這不是一個技術問題,而是一個概念問題。具有負載平衡功能的傳統Web應用程序的Docker?

我的問題是:如果我要

  • 安裝WordPress的網上商店(woocommerce),使用Apache
  • 使用泊塢窗,
  • 負載均衡,使用HAProxy的
  • 實現微服務體系結構

我該如何實現它?

這裏是我想出了:

  • 1容器:阿帕奇+ PHP
  • 1容器:MySQL的

但我不知道該怎麼HAProxy的融入木構建築。

任何人都可以給我一個想法嗎?

如果所有的容器都在一臺機器上,又如何做負載平衡?

非常感謝您的幫助。

+0

如果你只打算有一個Apache的實例,你打算如何負載平衡?更典型的是有一個數據庫和多個Apaches。並且在同一臺機器上通常沒有多個Apach負載平衡點;價值來自擁有多臺機器。我建議你閱讀一些文章,如http://blog.hypriot.com/post/docker-compose-nodejs-haproxy/ – Bryan

回答

1

我已經做了類似的事情,也超過了多臺機器。首先,除非你有多個Apache + PHP實例,否則haproxy根本就不會出現在圖片中。

否則:一個理想的設置應爲:從用戶

請求 - >的haproxy - >多個(阿帕奇+ PHP) - >的MySQL。

這裏Haproxy會給你一個公共的(主機的)公共IP和端口供你的應用程序訪問。每當有人訪問此IP和端口時,請求都會被轉發到您的Apache + PHP容器之一。您將不得不編輯haproxy.cfg文件並列出容器的IP和端口。

此鏈接可以幫助你: https://serversforhackers.com/load-balancing-with-haproxy

請注意,這裏是HAProxy的計算機上運行,​​而不是作爲一個碼頭工人的容器。

+0

謝謝。所以還有一個問題:你的PHP文件怎麼樣?它是否使用Docker VOLUMN語法作爲容器可以訪問的單個目錄加載? –

+0

你的意思是你的web應用程序的源代碼?那麼,一個好的做法是將它們複製到容器中而不是卷裝。在數據需要被保存的地方應該使用卷裝。這可能是你的mysql容器的情況。這是因爲如果mysql容器關閉,你不想丟失數據。但是,PHP文件並非如此。 – 208rishabh

+0

謝謝。我問這個問題的原因是開發人員進行某些維護比如「更新字符串」或「更新文件」,「添加圖像」等是非常正常的。如果我們將源代碼打包到一個容器中,那麼我想開發人員需要逐個更新文件到每個容器。這就是爲什麼我想問這個問題。你有沒有設法有類似的經歷? –