簡體   English   中英

Apache Web 服務器負載均衡

[英]Apache web server Load balancing

我們在安裝了apache web server的out環境中有一個需求,其中ssl和非ssl端口被配置為分別監聽8080和4443。 現在我想根據輸入對請求進行負載平衡,如果傳入的請求是 ssl,它應該將請求負載平衡到“https”,如果它是非 ssl,它應該將請求負載平衡到“http”。 嘗試了以下方法,但沒有按預期工作。 有人可以幫忙嗎?

   <Proxy balancer://mybalancerhttp>
            BalancerMember http://localhost1/
            BalancerMember http://localhost2/
            ProxySet lbmethod=byrequests
   </Proxy>

   ProxyPass / "balancer://mybalancerhttp/"
   ProxyPassReverse / "balancer://mybalancerhttp/"

   <Proxy balancer://mybalancerhttps>
            BalancerMember https://localhost1/
            BalancerMember https://localhost2/
            ProxySet lbmethod=byrequests
   </Proxy>

   ProxyPass / "balancer://mybalancerhttps/"
   ProxyPassReverse / "balancer://mybalancerhttps/"

謝謝

這些指令很好,但您想根據客戶端請求決定發送到哪里。

最簡單的方法是將這些 proxypass 集和它們的平衡器定義中的每一個移動到它們自己的虛擬主機中。

這是

<VirtualHost *:8080>
ServerName yourhostname.example.com
   <Proxy balancer://mybalancerhttp>
            BalancerMember http://localhost1/
            BalancerMember http://localhost2/
            ProxySet lbmethod=byrequests
   </Proxy>

   ProxyPass / "balancer://mybalancerhttp/"
   ProxyPassReverse / "balancer://mybalancerhttp/"
</VirtualHost>

<VirtualHost *:4443>
ServerName yourhostname.example.com
SSLEngine on
SSLProxyEngine on
....certs and all needed directives
<Proxy balancer://mybalancerhttps>
            BalancerMember https://localhost1/
            BalancerMember https://localhost2/
            ProxySet lbmethod=byrequests
   </Proxy>

   ProxyPass / "balancer://mybalancerhttps/"
   ProxyPassReverse / "balancer://mybalancerhttps/"
</VirtualHost>

我有一個類似的問題(/balancer-manager 只適用於 HTTP,而不適用於 HTTPS),在我的情況下,解決方案是在文件“ssl.conf”而不是“httpd.conf”中添加這個配置。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM