Apache-2.2
具有多個 PHP Webapp 伺服器的 Apache Web 伺服器
什麼是 Apache/PHP 環境的最佳可擴展架構?我想使用單個 Apache 實例並將請求解除安裝到 N 個 Web 應用程序 (PHP) 伺服器;這通常是如何完成的?
我正在使用 fastcgi 和 php-fpm,這樣你就可以在不同的機器上擁有多個 php-fpm 守護程序。
請記住,php-fpm 需要訪問您的 docroot,因此在使用多台機器時需要某種共享儲存。
這個問題有多種解決方案,但如果您已經熟悉 Apache,那麼最簡單的解決方案是確保在您的 Apache 建構中啟用 mod_proxy_http 和 mod_proxy_balancer:
$ [...]/httpd -t -D DUMP_MODULES |grep proxy
然後參考mod_proxy和mod_proxy_balancer文件,但你可能想做這樣的事情:
ProxyRequests Off <Proxy balancer://myphpapp> BalancerMember http://server1.backend.php:8000 BalancerMember http://server2.backend.php:8000 </Proxy> ProxyPass / balancer://myphpapp/ ProxyPassReverse / balancer://myphpapp/
(
ProxyRequests Off
看起來很奇怪,但那是關閉正向代理,因為此設置將是反向代理。如果您使用的是 SSL,您可能還需要添加SSLProxyEngine On
以保持流暢。)當然,這只是第一步。它將在您定義的平衡器集的成員之間循環請求。如果您想要粘性會話、負載率、基於使用者代理、cookie 或 IP 地址的過濾等,請查看連結的文件,當然,請發布更多問題。