HAproxy企業應用,TCP/HTTP動靜分離
HAproxy 企業應用,TCP/HTTP動靜分離
HAProxy 的是一個免費的、開源的的tcp/http反向代理工具、負載均衡器,是一個企業非常快速和可靠的安全的解決方案,提供高可用性、高併發性,負載均衡和代理對TCP和基於HTTP的應用程式。它特別適用於流量非常高的網站。它已成為事實上的標準開源負載均衡器,現在隨大多數主流 Linux發行版一起提供,在網際網路領域應用也是非常廣泛,受歡迎的第三方工具。
在企業實際應用環境中,往往會根據業務請求將相關不同請求跳轉到指定的後端伺服器,比如客戶靜態資源請求交給後端靜態資源伺服器處理,php請求交給後端動態資源Apache服務進行處理,jsp請求交給後端動態資源tomcat服務進行處理,即業務上的應用請求分離,我們這裡可以通過haproxy完全可以利用acl匹配規則實現這一目的,以實現動靜分離效果;除了haproxy外,其實還可以通過nginx的acl規則也可以完全實現,不過這些強大的工具往往是在Linux伺服器上面跑才能發揮最佳效能,其實這些東西安裝和配置非常簡單,只需要有Linux基礎,懂得一些Linux基礎的命令就完全可以實現強大的功能,我也是在 《Linux 就該這麼學》 這本樹入門Linux,非常適合於初學者。
現在好多企業購買負載均衡器硬體裝置,其實這些硬體裝置都是通過潛入軟體來實現的,可能效能還沒有那麼好,haproxy實現tcp和http負載均衡非常靠譜的,我們企業現在入口幾十萬的併發,在前端部署幾天Linux伺服器安裝haproxy完全毫無壓力的,而且效果非常明顯,開始沒有用到haproxy的時候使用者一直反饋訪問非常卡,因為開始是直接訪問Windows伺服器,這樣不安全並且給業務伺服器壓力也非常大,還有可能導致業務直接奔潰。Haproxy使用者負載均衡在Linux伺服器上面跑還是非常好的,會話速率快、會話併發高、資料轉化率快這些都是haproxy的一些效能上面的優勢。
下面我們通過一個簡單的案例來實現HAproxy動靜分離效果 ,需求如下:
1 、靜態頁面的請求傳送到 web1;
角色名稱 |
ip資訊 |
haproxy server |
eth0:172.51.96.233/24 && eth1:192.168.3.22/24 |
static server |
eth1:192.168.3.24/24 |
php server |
eth1:192.168.3.9/24 |
tomcat server |
eth1:192.168.3.9/24 |
1 、官網下載haproxy-1.8.9.tar.gz安裝包(需要 上牆);
# wget http://www.haproxy.org/download/1.8/src/haproxy-1.8.9.tar.gz
# useradd -g haproxy -M -s /sbin/nologin haproxy
# tar zxvf haproxy-1.8.9.tar.gz
# make TARGET=linux2628 PREFIX=/usr/local/haproxy
# make install PREFIX=/usr/local/haproxy
注意:TARGET=Linux31 是通過uname -a 來檢視Linux核心版本的,kernel 大於2.6.28的用:TARGET=linux2628
drwxr-xr-x 3 root root 21 May 23 15:56 doc
drwxr-xr-x 2 root root 21 May 23 15:56 sbin
drwxr-xr-x 3 root root 17 May 23 15:56 share
[root@web-3-22 haproxy]# yum install haproxy.x86_64
[root@web-3-22 haproxy]# mkdir etc
[root@web-3-22 haproxy]# cd etc/
5 、haproxy配置
[root@web-3-22 etc]# vim haproxy.cfg
maxconn 500000 # Max simultaneous connections from an upstream server
spread-checks 5 # Distribute health checks with some randomness
option forwardfor except 127.0.0.0/8
stats realm Haproxy\ Statistics
stats auth hadmin:yhXV2WAbybXd1euzEXbEADAe
default_backend default # 設定預設訪問資源頁面
# 定義當請求的內容是靜態內容時(圖片、視訊、js、css、html),將請求轉交給靜態資源伺服器的acl規則
acl url_static path_beg -i /static /images /img /javascript /stylesheets
acl url_static path_end -i .jpg .gif .png .css .js .html
acl host_static hdr_beg(host) -i img. video. download. ftp. imags. videos.
# 定義當請求的內容是php內容時,將請求轉交給php動態資源伺服器的acl規則
# 定義當請求的內容是.jsp或.do內容時,將請求轉交給tomcat動態資源伺服器的acl規則
acl url_jsp path_end -i .jsp .do
use_backend static_pool if url_static or host_static
use_backend php_pool if url_php
use_backend tomcat_pool if url_jsp
option httpchk GET /index.html
server static1 192.168.3.24:80 cookie id1 check inter 2000 rise 2 fall 3
server php1 192.168.3.9:80 cookie id1 check inter 2000 rise 2 fall 3
server tomcat1 192.168.3.9:8080 cookie id2 check inter 2000 rise 2 fall 3
#<----------------------default site for listen and frontend------------------------------------>
option httpchk GET /index.html
server default 192.168.3.24:80 cookie id1 check inter 2000 rise 2 fall 3 maxconn 5000
# chown -R haproxy:haproxy /usr/local/haproxy/
# 啟動haproxy報錯,可能是埠衝突導致的,檢查haproxy listen配置,我這配置檔案監聽的是80埠,此主機的80埠被httpd佔用了,停止httpd服務,再次啟動haproxy就正常了;
6 、服務狀態
service haproxy start // 啟動服務
service haproxy stop // 停止服務
service haproxy status // 服務狀態
chkconfig haproxy on // 開機啟動
三、測試haproxy效果如下:
2 、測試html靜態資源
http://192.168.3.22/index.html
3 、測試php動態資源
http://192.168.3.22:8888/admin?stats
hadmin/yhXV2WAbybXd1euzEXbEADAe
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31559985/viewspace-2656185/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 11,nginx動靜分離Nginx
- 013.Nginx動靜分離Nginx
- 乾貨 | CDN搭配OSS最佳實踐 ——搭建動靜態分離的應用架構應用架構
- Nginx+Tomcat實現動靜分離NginxTomcat
- 企業級反向代理 HAProxy
- 網際網路動靜分離架構架構
- Nginx—tomcat負載均衡動靜分離群集NginxTomcat負載
- 網路分層TCP/IP 與HTTPTCPHTTP
- nginx反向代理目錄及動靜分離公羊seoNginx
- Nginx 動靜分離與負載均衡的實現Nginx負載
- 企業應用架構的基本模式之分離介面應用架構模式
- Nginx 高階篇(一)反向代理實現動靜分離Nginx
- Solid - 將資料與應用分離Solid
- Nginx使用篇:實現負載均衡、限流與動靜分離Nginx負載
- 大輝談-備戰雙十一之動靜分離實戰
- 知物由學 | 輿情資料清洗“動”“靜”分離方案
- Nginx+Tomcat負載均衡,動靜分離群集部署解析NginxTomcat負載
- RPA正在成為企業應用標配,企業應該如何進行自動化?
- 基於tcp的http應用,斷點續傳,範圍請求TCPHTTP斷點
- Nginx+Tomcat實現負載均衡、動靜分離叢集部署NginxTomcat負載
- 帶你瞭解Nginx+Tomcat負載均衡,動靜分離群集NginxTomcat負載
- 應用架構之道:分離業務邏輯和技術細節應用架構
- Orchestrator+Proxysql 實現自動導換+應用透明讀寫分離SQL
- 15 分鐘實現企業級應用無損上下線
- 新移動框架中企業自建應用的來源是【移動輕應用管理】框架
- .NET企業應用安全開發動向-概覽
- ProxySQL簡介原理及讀寫分離應用SQL
- 伺服器群集—Nginx+Tomcat+keepalived負載均衡、動靜分離群集伺服器NginxTomcat負載
- Tomcat+Nginx實現動靜分離和負載均衡架構部署TomcatNginx負載架構
- 第七天-《企業應用架構模式》-分佈策略應用架構模式
- HTTP、Socket與TCPHTTPTCP
- TCP應用層協議TCP協議
- 德勤第4次企業AI應用調查:通往“AI驅動型”企業之路AI
- UDP和TCP以及HTTPUDPTCPHTTP
- TCP與應用層協議TCP協議
- 淺析TCP和nodejs中TCP的簡單應用TCPNodeJS
- web離線應用Web
- 企業雲盤適用哪些應用場景