日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

haproxy 同一域名下分发请求

發布時間:2025/4/16 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 haproxy 同一域名下分发请求 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

http://www.th7.cn/Program/java/201608/936162.shtml

https://my.oschina.net/lockupme/blog/733375

?還有一點要注意的是,我們要把帶path的use_backend放在不帶path的前面

比如說這里

use_backend appapis_server_news if is_appapis is_appapis_newsuse_backend appapis_server_albums if is_appapis is_appapis_albumsuse_backend appapis_server if is_appapis
我們這里帶接口路徑的放在不帶接口路徑的前面。否則的話先讀取不帶path路徑的use_backend,這樣的話,就不會讀取后面的path路徑的use_backend
我在工作中就遇到過這個問題。調整一下前后順序就好了

在實際項目中,項目接口可能是多語言開發完成,對外只綁定同一個域名,如。

不管后端采用哪種語言來開發接口,在前端(App或Wap或Pc),只要調用一個域名來請求接口。在這里采用Haproxy來做代理負載的

對于接口開的功能,一般按模板來開發,如用戶模塊可能采用Java、新聞模塊可能采用Php、相冊模塊可能采用C#開發。

Haproxy的配置在這里不再詳細說明,可在網上搜索。

看看Haproxy在實際中如何配置,同一個域名來實現的。

接口實例是這樣:

java:?api.domain.com/apis/users/具體接口名稱

Php: api.domain.com/apis/news/具體接口名稱

C#: ?api.domian.com/apis/albums/具體接口名稱

?

acl is_appapis_news path_beg -i /apis/news #Php接口acl is_appapis_albums path_beg -i /apis/albums #C#接口acl is_appapis hdr_beg(host) -i api.domain.com #主Java接口use_backend appapis_server_news if is_appapis is_appapis_newsuse_backend appapis_server_albums if is_appapis is_appapis_albumsuse_backend appapis_server if is_appapis

?

注意兩點:

1、接口都是按模塊來開發,所在配置中用path_beg,來區分,同時在使用use_backend代理的時候,if 后面要跟著主host代理“is_appapis”,

2、Haproxy,配置規則是按順序來執行的,這點一定要注意

完整配置文件如下(適當刪減,因為是真實環境,里面IP地址和域名都是假):

?

globallog 127.0.0.1 local0log 127.0.0.1 local1 notice#log loghost local0 infomaxconn 51200chroot /usr/share/haproxyuid 99gid 99daemonnbproc 1#debug#quietdefaultslog globalmode httpoption dontlognulloption redispatchoption abortonclosetimeout connect 5000mstimeout client 30000mstimeout server 30000mslisten admin_statsbind 0.0.0.0:6421option httplogmode httpstats refresh 30sstats uri /admin_statsstats realm Load Balancestats auth admin:9874523*&/frontend web_inmode httpmaxconn 51200bind :80acl is_appapis_news path_beg -i /apis/news #Php接口acl is_appapis_albums path_beg -i /apis/albums #C#接口acl is_appapis hdr_beg(host) -i api.domain.com #主Java接口acl is_waps hdr_beg(host) -i wap.domain.comuse_backend appapis_server_news if is_appapis is_appapis_newsuse_backend appapis_server_albums if is_appapis is_appapis_albumsuse_backend appapis_server if is_appapisuse_backend waps_server if is_wapsbackend appapis_serveroption httpclosebalance roundrobinoption forwardforstats uri /appapisserver s1 10.164.57.82:8080 check weight 1 minconn 1 maxconn 5120 check inter 40000server s2 10.164.57.81:8080 check weight 1 minconn 1 maxconn 5120 check inter 40000backend appapis_server_newsoption httpclosebalance roundrobinoption forwardforstats uri /appapisserver s1 10.164.57.83:8000 check weight 1 minconn 1 maxconn 5120 check inter 40000backend appapis_server_albumsoption httpclosebalance roundrobinoption forwardforstats uri /appapisserver s1 10.164.57.84:8002 check weight 1 minconn 1 maxconn 5120 check inter 40000backend waps_serveroption httpclosebalance roundrobinoption forwardforstats uri /appapisserver s1 10.164.57.83:8001 check weight 1 minconn 1 maxconn 5120 check inter 40000 listen app_v1_userservicesbind :10001mode tcpbalance roundrobinserver s1 10.164.57.82:10001 check weight 1 minconn 1 maxconn 5120 check inter 40000server s2 10.164.57.81:10001 check weight 1 minconn 1 maxconn 5120 check inter 40000listen app_v1_companyservicesbind :10002mode tcpbalance roundrobinserver s1 10.164.57.82:10002 check weight 1 minconn 1 maxconn 5120 check inter 40000server s2 10.164.57.81:10002 check weight 1 minconn 1 maxconn 5120 check inter 40000

?

轉載于:https://www.cnblogs.com/smail-bao/p/6739101.html

總結

以上是生活随笔為你收集整理的haproxy 同一域名下分发请求的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。