haproxy 安裝與反向代理簡單配置

haproxy 下載

https://www.haproxy.org/#down

安裝參考: https://blog.csdn.net/keil_wang/article/details/89712380

tar xzvf haproxy-1.8.13.tar.gz
cd haproxy-1.8.13/
make TARGET=linux31      //這裏用uname -r查看系統內核版本。centos6.x使用linux26,centos7.x使用linux31
make install PREFIX=/usr/local/haproxy
mkdir /usr/local/haproxy/conf
cp examples/option-http_proxy.cfg /usr/local/haproxy/conf/haproxy.cfg



啓動:
/usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/conf/haproxy.cfg

配置文件  haproxy.cfg 配置反向代理

global
        maxconn         20000
	ulimit-n	16384
        log             127.0.0.1 local0
        uid             200
        gid             200
        chroot          /var/empty
	nbproc		4
        daemon



#---------------------------------------------------------------------
# 默認配置
#---------------------------------------------------------------------
defaults
    mode http #默認的模式mode { tcp|http|health },tcp是4層,http是7層,health只會返回OK
    log global #採用全局定義的日誌
    option httplog #日誌類別,採用httplog
    option dontlognull #不記錄健康檢查日誌信息
    retries 3 #3次連接失敗就認爲是服務器不可用,也可以通過後面設置
    option forwardfor #如果後端服務器需要獲得客戶端真實ip需要配置的參數,可以從Http Header中獲得客戶端ip
    #option httpclose #每次請求完畢後主動關閉http通道,haproxy不支持keep-alive,只能模擬這種模式的實現,關閉keep-alive
    #option redispatch #當serverId對應的服務器掛掉後,強制定向到其他健康的服務器,以後將不支持
    option abortonclose #當服務器負載很高的時候,自動結束掉當前隊列處理比較久的鏈接
    maxconn 6000 #默認的最大連接數
    timeout connect 50000ms #連接超時
    timeout client 300000ms #客戶端超時
    timeout server 300000ms #服務器超時
    #timeout check 2000 #心跳檢測超時
    #timeout http-keep-alive 10s #默認持久連接超時時間
    #timeout http-request 10s #默認http請求超時時間
    #timeout queue 1m #默認隊列超時時間
    balance roundrobin #設置默認負載均衡方式,輪詢方式,類似於nginx的ip_hash


    # 保持長連接
    option http-keep-alive
    option http-server-close
    timeout http-keep-alive 650s
    timeout client 30s





frontend test-proxy
	#bind		192.168.200.10:8080
       # 這裏建議使用bind *:80的方式,要不然做集羣高可用的時候有問題,vip切換到其他機器就不能訪問了。
        bind *:80
        mode            http
        log             global
        option          httplog
        option          dontlognull
        option          nolinger
        option          http_proxy
        maxconn         8000
        timeout client  30s

	# layer3: Valid users
	#acl allow_host src 192.168.200.150/32
	#http-request deny if !allow_host

	# layer7: prevent private network relaying
	#acl forbidden_dst url_ip 192.168.0.0/24
	#acl forbidden_dst url_ip 172.16.0.0/12
	#acl forbidden_dst url_ip 10.0.0.0/8

        #配置第一個項目請求 ,比如將 http://localhost/t1/** 都代理  project1-server 服務
        #acl project1-server path_beg -i /t1/
        #use_backend project1-server if project1-server

       # 這種方式必須開啓長連接         
        acl test  path_beg -i /test/
        use_backend test if test
       
        # 完全代理 ,即將  http://localhost/** 都 代理 test_all 的服務器
	#use_backend test_all
        

	#http-request deny if forbidden_dst
	default_backend test-proxy-srv


 #當以域名+/project1請求時轉發到下面地址,內網ip+端口+項目名(項目名一個時可以不寫)    
# check inter 10s 請不要隨便加上這個配置,特別是 代理NGINX的時候,或者不支持心跳檢查的服務,否則代理出錯
backend project1-server
    mode http
    option forwardfor
    server wget 192.168.10.4:80/t1 check inter 10s




backend test
    mode http
    #option forwardfor
    server test1 192.168.10.4:8085 


backend test_all
    mode http
    #option forwardfor   # 讓 代理的服務器能夠識別代理的機器IP
    server n1  192.168.10.4:8085 



backend test-proxy-srv
	mode            http
	timeout connect 5s
	timeout server  5s
	retries         2
	option          nolinger
	option          http_proxy

	# layer7: Only GET method is valid
	acl valid_method        method GET
	http-request deny if !valid_method

	# layer7: protect bad reply
	http-response deny if { res.hdr(content-type) audio/mp3 }

 

參考

https://blog.csdn.net/keil_wang/article/details/89712380

 https://vegetable-chicken.blog.csdn.net/article/details/107717290

https://my.oschina.net/gongfuxiang/blog/4545141

https://my.oschina.net/u/4367553/blog/3546402
haproxy 保持連接: https://blog.51cto.com/fengwan/1775083

https://blog.51cto.com/tianshili/1841003

https://blog.51cto.com/fengwan/1775083


https://blog.csdn.net/boyce_avenue/article/details/80487161
https://blog.csdn.net/weixin_33984032/article/details/92179538

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章