HAproxy企業應用,TCP/HTTP動靜分離
HAProxy的是一個免費的、開源的的tcp/http反向代理工具、負載均衡器,是一個企業非常快速和可靠的安全的解決方案,提供高可用性、高併發性,負載均衡和代理對TCP和基於HTTP的應用程式。它特別適用於流量非常高的網站。它已成為事實上的標準開源負載均衡器,現在隨大多數主流Linux發行版一起提供,在網際網路領域應用也是非常廣泛,受歡迎的第三方工具。
在企業實際應用環境中,往往會根據業務請求將相關不同請求跳轉到指定的後端伺服器,比如客戶靜態資源請求交給後端靜態資源伺服器處理,php請求交給後端動態資源Apache服務進行處理,jsp請求交給後端動態資源tomcat服務進行處理,即業務上的應用請求分離,我們這裡可以通過haproxy完全可以利用acl匹配規則實現這一目的,以實現動靜分離效果;除了haproxy外,其實還可以通過nginx的acl規則也可以完全實現,不過這些強大的工具往往是在Linux伺服器上面跑才能發揮最佳效能,其實這些東西安裝和配置非常簡單,只需要有Linux基礎,懂得一些Linux基礎的命令就完全可以實現強大的功能,我也是在
現在好多企業購買負載均衡器硬體裝置,其實這些硬體裝置都是通過潛入軟體來實現的,可能效能還沒有那麼好,haproxy實現tcp和http負載均衡非常靠譜的,我們企業現在入口幾十萬的併發,在前端部署幾天Linux伺服器安裝haproxy完全毫無壓力的,而且效果非常明顯,開始沒有用到haproxy的時候使用者一直反饋訪問非常卡,因為開始是直接訪問Windows伺服器,這樣不安全並且給業務伺服器壓力也非常大,還有可能導致業務直接奔潰。Haproxy使用者負載均衡在Linux伺服器上面跑還是非常好的,會話速率快、會話併發高、資料轉化率快這些都是haproxy的一些效能上面的優勢。
下面我們通過一個簡單的案例來實現HAproxy動靜分離效果,需求如下:
1、靜態頁面的請求傳送到 web1;
2、動態頁面的請求傳送到 web2。
一. haproxy實現應用動靜分離
haproxy部署前注意事項:
(1)作業系統版本: centos 7.4(64位)
(2)功能角色及伺服器ip相關資訊:
角色名稱 |
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
2、建立haproxy執行使用者
# groupadd -r haproxy
# useradd -g haproxy -M -s /sbin/nologin haproxy
3、原始碼編譯安裝haproxy:
# tar zxvf haproxy-1.8.9.tar.gz
# cd haproxy-1.8.9/
# make TARGET=linux2628 PREFIX=/usr/local/haproxy
# make install PREFIX=/usr/local/haproxy
注意:TARGET=Linux31 是通過uname -a 來檢視Linux核心版本的,kernel 大於2.6.28的用:TARGET=linux2628
# cd /usr/local/haproxy/
[root@web-3-22 haproxy]# ll
total 0
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
4、yum安裝:
[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
global
maxconn 500000 # Max simultaneous connections from an upstream server
spread-checks 5 # Distribute health checks with some randomness
chroot /usr/local/haproxy
daemon
nbproc 2
user haproxy
group haproxy
log 127.0.0.1 local0
log 127.0.0.1 local1 notice
description haproxy server
defaults
log global
mode http
maxconn 10000
option httplog
option httpclose
option dontlognull
option forwardfor except 127.0.0.0/8
retries 3
option redispatch
balance roundrobin
timeout http-request 10s
timeout queue 1m
timeout client 1m
timeout server 1m
listen adimin_stats
bind-process 1
mode http
stats enable
stats hide-version
bind :8888
stats uri /admin?stats
stats realm Haproxy\ Statistics
stats auth hadmin:yhXV2WAbybXd1euzEXbEADAe
stats refresh 30s
stats admin if TRUE
listen www
bind *:80
maxconn 50000
mode http
log global
option httplog
option httpclose
option forwardfor
log global
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規則
acl url_php path_end -i .php
#定義當請求的內容是.jsp或.do內容時,將請求轉交給tomcat動態資源伺服器的acl規則
acl url_jsp path_end -i .jsp .do
#引用haproxy的acl匹配規則
use_backend static_pool if url_static or host_static
use_backend php_pool if url_php
use_backend tomcat_pool if url_jsp
#定義後端backend server
backend static_pool
option httpchk GET /index.html
server static1 192.168.3.24:80 cookie id1 check inter 2000 rise 2 fall 3
backend php_pool
option httpchk GET /index.php
server php1 192.168.3.9:80 cookie id1 check inter 2000 rise 2 fall 3
backend tomcat_pool
option httpchk GET /index.jsp
server tomcat1 192.168.3.9:8080 cookie id2 check inter 2000 rise 2 fall 3
#<----------------------default site for listen and frontend------------------------------------>
backend default
mode http
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/
# service haproxy start
#啟動haproxy報錯,可能是埠衝突導致的,檢查haproxy listen配置,我這配置檔案監聽的是80埠,此主機的80埠被httpd佔用了,停止httpd服務,再次啟動haproxy就正常了;
# netstat -ntlp|grep haproxy
6、服務狀態
service haproxy start //啟動服務
service haproxy stop //停止服務
service haproxy status //服務狀態
chkconfig haproxy on //開機啟動
三、測試haproxy效果如下:
1、預設頁面:
2、測試html靜態資源
http://192.168.3.22/index.html
3、測試php動態資源
4、測試jsp動態資源
5、haproxy後臺監控頁面
http://192.168.3.22:8888/admin?stats
hadmin/yhXV2WAbybXd1euzEXbEADAe
相關推薦
HAproxy企業應用,TCP/HTTP動靜分離
HAProxy的是一個免費的、開源的的tcp/http反向代理工具、負載均衡器,是一個企業非常快速和可靠的安全的解決方案,提供高可
linux+apache+nginx實現,反向代理動靜分離
在我們開發的過程中,一定會遇到,負載均衡方面的問題。下面我們,做一個小例子:使用nginx+apache實現反向代理,動靜分離。 這裡apache、php、nginx的安裝就不做贅述了,不懂的朋友可以看看我其他的文章,或者去百度搜索瞭解一下。 現在,我們的電腦上有apache、nginx、php,其中ph
Haproxy實現web的頁面的動靜分離
一、Haproxy概述; 概述:Haproxy是一個開源的高效能的反向代理或者說是負載均衡服務軟體之一,由C語言編寫而成,支援會話保持、七層處理、健康檢查、故障修復後自動載入、動靜分離。HAProxy執行在當前的硬體上,完全可以支援數以萬計的併發連線; Haproxy軟體引入了frontend,backend
haproxy的負載均衡,網頁重定向,健康檢查,動靜分離,上傳下載分離
一 haproxy介紹 1) HAProxy 是一款提供高可用性、負載均衡以及基於TCP(第四層)和HTTP(第七層)應用的代理軟體,支援虛擬主機,它是免費、快速並且可靠的一種解決方案。 HAProxy特別適用於那些負載特大的web站點,這些站點通常又需要會
Haproxy負載均衡,讀寫及動靜分離
HAProxy 提供高可用性、負載均衡以及基於 TCP 和 HTTP 應用的代理,支援虛擬主機,它是免費、快速並且可靠的一種解決方案。HAProxy 特別適用於那些負載特大的 web 站點, 這些站點通常又需要會話保持或七層處理。HAProxy 執行在當前的硬體上
應用層的 TCP/UDP 協議,和 HTTP、FTP、SMTP 等區別?
OSI 模型主要作為一個通用模型來做理論分析,而TCP/IP 協議模型是網際網路的實際通訊協議,兩者一般做對映分析,以下不做嚴格區分和宣告(好吧,比較懶); OSI 整個模型層次大致可以分為3個主要層面來看 |.............主機...............| 作業系統和軟體等 應用、表示、會話
動靜分離,提高網頁訪問速度
gin jpg oot 得到 加載 .html path page -c ? 起源 有些人總是不帶我喝咖啡,認為喝咖啡高雅,吃大蒜低俗,還好,沒有俗就沒有雅。。。我就俗了,怎麽地,打我呀。。。。哈哈 動靜分離,那麽什麽動態的,什麽是靜
http協議,tcp協議,ip協議,dns服務之前的關系和區別
ip協議 服務器 基本 log 標記 理解 增加 更改 過程 長期以來都有一個問題,大家都在說http協議,tcp協議,ip協議,他們之間到底什麽區別,有什麽用,沒人告訴我,最近看了這本《圖解http》明白了一些,以下圖片摘自這本書 一、理解一個傳輸流再去擴展 用
nginx反向代理,實現動靜分離
nginx反向代理實現動靜分離nginx反向代理,實現動靜分離nginx反向代理 反向代理(Reverse Proxy)方式是指以代理服務器來接受Internet上的連接請求,然後將請求轉發給內部網絡上的服務器;並將從服務器上得到的結果返回給Internet上請求連接的客戶端,此時代理服務器對外就表現為一個
高可用haproxy調度varnish服務器緩存後端動靜分離集群架構
haproxy varnish(1) 動靜分離部署wordpress,動靜都要能實現負載均衡,要註意會話的問題;(2) 在haproxy和後端主機之間添加varnish進行緩存;(3) 給出設計拓撲,寫成博客;(4) haproxy的設定要求: (a) stats page,要求僅能通過本地訪問使用管理接口;
Haproxy的負載均衡、動靜分離、狀態監控、近期網絡架構
haproxy 負載均衡 監控 動靜分離 一、Haproxy的簡介 Haproxy的官網站點:http://haproxy.com/ HAProxy提供高可用性、負載均衡以及基於TCP和HTTP應用的代 理,支持虛擬主機,它是免費、快速並且可靠的一種解決方案。HAProxy特別適用
HAProxy+LAMP動靜分離
haproxy實驗目的:為了減輕後端服務器的承載量,使用HAProxy做動靜分離,將動態資源放在動態web組中,靜態資源放在static組中,圖片放在image server中,數據庫單獨用一臺服務器。網絡拓撲圖配置HAProxy服務器~]# yum -y install haproxy ~]# vim /e
Haproxy 基礎詳解及動靜分離配置
haproxy 動靜分離 haproxy 介紹 1 工作在ISO 七層 根據http協議(或者工作在ISO四層 根據tcp協議) 提供web服務的負載均衡調度器負載均衡調度器分類 工作在四層: # lvs 工作在七層: # nginx (web,http reverse proxy,cache
HAProxy+Varnish+LNMP實現高可用負載均衡動靜分離集群部署
else 應用服務器 bash == 開機啟動 多少 heal 啟用 4.0 轉自http://bbs.hfteams.com/forum.php?mod=viewthread&tid=11&extra=page%3D1 HAProxy+Varnish+LN
企業級應用服務動靜分離
負載均衡 動靜分離 linux 此處只貼出實現代碼 背景:通過Nginx實現7層動靜分離,即通過Nginx反向代理配置規則實現讓動態資源和靜態資源及其他業務分別由不同的服務器解析。 測試機器準備工作7層動靜分離案例負載均衡lb01 [root@lb01 ~]# cat /application
(轉)Http狀態碼301和302概念簡單區別及企業應用案例
ash BE light div www oldboy dex -i 地址 Http狀態碼301和302的區別及企業應用案例 原文:http://blog.51cto.com/oldboy/1774260 1、什麽是301重定向? 301重定向/跳轉一般,表示本網頁永
利用HAProxy簡單實現wordpress動靜分離示例
配置 src img 文件夾 fault 利用 front 開頭 修改配置 系統拓撲圖如下: 此處我利用Centos7.5作為服務器,將訪問到此處的報文動靜分離到下端服務器,Centos7.5A與
haproxy調度後端動靜分離集群架構
img htm 主機 nfs 用兩個 dde 項目需求 命令 eal 項目要求: (1) 動靜分離部署wordpress,動靜都要能實現負載均衡,要註意會話的問題; (2) 設計拓撲; (3) haproxy的設計要求: (a) stats page,要求僅能通過本地訪問使
高可用haproxy調度後端服務器實現動靜分離集群架構
eal 文件配置 instance killall col .html 相同 virtual 關閉 項目要求: (1) 動靜分離部署wordpress,動靜都要能實現負載均衡,要註意會話的問題; (2) 設計拓撲; (3) haproxy的設計要求: (a) stats p
socket,tcp,http三者之間的區別和原理
asa light lap 線路 試圖 clas rtsp 幀中繼 rpc 下面的圖表試圖顯示不同的TCP/IP和其他的協議在最初OSI模型中的位置:7 應用層 HTTP、SMTP、SNMP、FTP、Telnet、SIP、SSH、NFS、RTSP、XMPP、Whoi