LoadModule vhost_alias_module modules/mod_vhost_alias.so LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_balancer_module modules/mod_proxy_balancer.so LoadModule proxy_http_module modules/mod_proxy_http.so LoadModule lbmethod_byrequests_module modules/mod_lbmethod_byrequests.so LoadModule slotmem_shm_module modules/mod_slotmem_shm.so # Virtual hosts Include conf/extra/httpd-vhosts.conf
Listen 8088 <VirtualHost *:8088> ProxyPass / http://localhost:8080/ ProxyPassReverse / http://localhost:8080/ ErrorLog "logs/tomcat-error.log" CustomLog "logs/tomcat-access.log" common </VirtualHost>
注意:算法
ProxyPassReverse : 調整由反向代理服務器發送的HTTP響應頭中的URL,也就是對後端服務器返回響應頭中的URL信息進行調整,使其指向的是反向代理服務器,而不是真正的後端服務器。由於後端服務器只能經過代理服務器訪問,客戶端沒法訪問,若是客戶端訪問的頁面存在重定向請求的話,若是使用後端服務器在前一次請求的響應URL信息,也就是客戶端直接訪問後端服務器,由於安全考慮這條訪問路徑是不一樣的,致使客戶端訪問失敗。若是將前一次請求的URL信息改成反向代理服務器的URL,這樣經過反向代理服務器訪問後端服務器則不會出現問題。後端
http負載均衡配置: 改造httpd-vhosts.conf文件:tomcat
## 虛擬主機轉發端口監聽 Listen 8088 <VirtualHost *:8088> # 取消/server-status,/balancer-manager路徑請求代理 ProxyPass /server-status ! ProxyPass /balancer-manager ! <Location /server-status> SetHandler server-status Require all granted </Location> #設置balancer-manager監控頁面 <Location /balancer-manager> SetHandler balancer-manager Require all granted </Location> # 設置負載均衡器 <Proxy balancer://myBalancer> BalancerMember http://localhost:8080 ProxySet lbmethod=byrequests </Proxy> # 集羣模式:請求轉發到負載均衡器處理 ProxyPass / balancer://myBalancer ProxyPassReverse / balancer://myBalancer/ ErrorLog "logs/tomcat-error.log" CustomLog "logs/tomcat-access.log" common </VirtualHost>
說明:安全
使用負載均衡管理器能夠將客戶端請求經過特定的負載算法,將請求轉發給一個應用服務器集羣,從而保證系統的高可用特性。服務器
結果驗證:負載均衡
服務器信息頁面:測試
負載均衡器管理頁面:ui