API缃戝叧Kong
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了API缃戝叧Kong相关的知识,希望对你有一定的参考价值。
鏍囩锛?a href='http://www.mamicode.com/so/1/%e5%93%aa%e4%ba%9b' title='鍝簺'>鍝簺
婧愬湴鍧€ mod 浜哄伐 cme ams 閰嶇疆 鏀堕泦 宸ヤ綔 缃戝叧鏄粈涔堬紝涓轰粈涔堟垜浠渶瑕佺綉鍏?
缃戝叧濂芥瘮鎴戜滑鐜板疄鐢熸椿涓殑澶ч棬锛屾垜浠姣忓ぉ鍑洪棬涓婄彮锛屼笅鐝洖瀹堕兘瑕侀€氳繃澶ч棬杩涘嚭銆傚湪缃戠粶涓栫晫涓綉鍏冲疄闄呬笂璧风潃鎺у埗娴侀噺杩涘嚭鐨勪綔鐢ㄣ€傛垜浠钩甯镐娇鐢ㄧ數鑴戣闂簰鑱旂綉锛岃矾鐢卞櫒鎵挎媴浜嗗嚭鍘绘祦閲忕殑缃戝叧鐨勫伐浣滐紝鍦ㄦ祦閲忓埌杈剧綉鍏冲悗锛岀綉鍏充娇鐢∟AT鎶€鏈畬鎴愪簡婧愬湴鍧€杞崲銆傦紙鍙互鐞嗚В涓哄嚭闂ㄥ墠鎹簡涓€鍙岄瀷瀛愶級
褰撳鎴风娴侀噺鍒拌揪鏈嶅姟绔箣鍚庯紝涔熼渶瑕佽繘鍏ユ湇鍔$鐨勭綉鍏宠繘琛屽鐞嗭紝杩欎釜缃戝叧閫氬父涔熷彨web鍙嶅悜浠g悊锛岄€氬父涓轰簡鎻愰珮鎬ц兘鍜屽畨鍏ㄨ€冭檻锛屼笉浼氱洿鎺ユ妸web涓棿浠剁殑绔彛鐩存帴鏆撮湶缁欑敤鎴?br/>鍦ㄦ湇鍔$缃戝叧杩欏眰閫氬父瑕佸畬鎴愯璇併€侀壌鏉冦€佹祦鎺х瓑鐩稿叧鐜妭鍚庤繘琛岃矾鐢辫浆鍙戠粰鍚庣鐨剋eb涓棿浠跺鐞嗭紝鏈€缁堝啀灏嗙粨鏋滆繑鍥炵粰瀹㈡埛绔?/p>
鐩墠鎴戜滑鐨勭敤鐨勭綉鍏虫槸鍟ワ紵鏈変粈涔堜紭缂虹偣锛?/h3>
甯傞潰涓婄殑缃戝叧浜у搧鎴栬€呰В鍐虫柟妗堜富瑕佸垎杞欢銆佺‖浠朵袱绉嶃€傜‖浠朵富瑕佷互F5涓轰唬琛紝杞欢鍒欎互nginx銆乷penresty銆乲ong绛変负浠h〃銆傛垜浠洰鍓嶇殑鎵€鏈夐」鐩潎浣跨敤nginx鏉ュ仛鏈嶅姟绔殑缃戝叧
浼樼偣锛?/p>
閰嶇疆鐩稿绠€鍗曪紝鍙傝€冩枃妗e拰閰嶇疆鏍蜂緥澶?br/>瀹樻柟鍜岀涓夋柟鐨勬ā鍧椾赴瀵岋紝鍙墿灞曟€у己
鎬ц兘琛ㄧ幇浼樺紓锛岀郴缁熷紑閿€浣庯紝骞跺彂鍚炲悙鑳藉姏寮?/p>
缂虹偣锛?/p>
椤圭洰澶氾紝椤圭洰闂寸浉鍚岀殑閰嶇疆澶ч噺瀛樺湪锛岄厤缃枃浠跺彲缁存姢琛屽樊
鎵€鏈夌殑閰嶇疆蹇呴』浜哄伐閰嶇疆涓庢牎楠岋紝鑷姩鍖栬兘鍔涘急
鏃ュ織鏂囦欢闆嗕腑鍦ㄦ湰鍦帮紝闆嗙兢鐜涓嬪垎鏋愬伐浣滈噺澶?/p>
Kong鏄粈涔堬紵
Kong鏄竴涓湪Nginx杩愯鐨凩ua搴旂敤绋嬪簭锛岀敱lua-nginx-module瀹炵幇銆侽penResty涓嶆槸Nginx鐨勫垎鏀紝鑰屾槸涓€缁勬墿灞曞叾鍔熻兘鐨勬ā鍧?鏁村悎浜哃ua妯″潡鍚庨噸鏂板彂甯冪殑nginx) 銆侹ong鍜孫penResty涓€璧锋墦鍖呭彂琛岋紝鍏朵腑宸茬粡鍖呭惈浜唋ua-nginx-module
鍙互绠€鍗曠悊瑙d负锛?br/>Kong > OpenResty > Nginx + lua-nginx-module
Kong 鏄湪瀹㈡埛绔拰锛堝井锛夋湇鍔¢棿杞彂API閫氫俊鐨凙PI缃戝叧锛岄€氳繃鎻掍欢鎵╁睍鍔熻兘銆侹ong 鏈変袱涓富瑕佺粍浠讹細
Kong Server 锛氬熀浜巒ginx鐨勬湇鍔★紝鐢ㄦ潵鎺ユ敹瀹㈡埛绔姹傦紝鍒哸pi锛堥粯璁?001锛夊拰http锛堥粯璁?000锛夈€乭ttps锛堥粯璁?443锛変笁涓鍙?br/>Apache Cassandra鎴栬€卲ostgresql鏁版嵁搴擄細鐢ㄦ潵鎸佷箙鍖栧瓨鍌ㄦ搷浣滄暟鎹?/p>
Kong鑳借В鍐充粈涔堥棶棰橈紵
Kong鏈€璇变汉鐨勪竴涓壒鎬ф槸鍙互閫氳繃鎻掍欢鎵╁睍宸叉湁鍔熻兘锛岃繖浜涙彃浠跺湪 API 璇锋眰鍝嶅簲寰幆鐨勭敓鍛藉懆鏈熶腑琚墽琛屻€?br/>鎻掍欢浣跨敤 Lua 缂栧啓锛孠ong鐨勫唴缃彃浠跺姛鑳芥湁锛?/p>
- 璁よ瘉鎻掍欢鏀寔澶氱璁よ瘉鏂瑰紡銆傚锛歜asic auth銆乲ey auth銆乷auth2銆乭mac auth銆乯wt銆乴adp auth銆乻ession绛?/li>
- 瀹夊叏鎻掍欢涓婃敮鎸侀拡瀵规秷璐硅€呯殑API ACL绛栫暐鎺у埗銆両P闄愬埗銆佹満鍣ㄤ汉妫€娴嬨€乤cme鑷鍏嶈垂璇佷功绛?/li>
- 娴佹帶鎻掍欢涓婃敮鎸佽姹傞€熺巼闄愬埗銆佽姹傚ぇ灏忛檺鍒躲€佽姹備腑鏂€佷唬鐞嗙紦瀛樼瓑
- 鐩戞帶鍒嗘瀽鎻掍欢涓婃敮鎸乸rometheus銆亃ipkin绛?/li>
- 鏃ュ織鎻掍欢涓婃敮鎸佹帴鍏CP銆乁DP銆丠TTP鍗忚鐨勬棩蹇楁湇鍔★紝鍚屾椂鏀寔syslog銆乻tatsd绛夋棩蹇楁湇鍔?/li>
- 杩樻湁涓€浜涚涓夋柟鐨勬棤鏈嶅姟鎻掍欢锛屼緥濡俛ws銆乤zure绛夈€?/li>
绠€鑰岃█涔嬶紝kong鍦╪ginx銆乷penresty鐨勫熀纭€涓婃暣鍚堜簡浼楀鐨勫姛鑳斤紝瀹炵幇浜咥PI缃戝叧鏈嶅姟銆?br/>瀵规垜浠€岃█锛屾渶鐩存帴鐨勬槸鍙互閫氳繃api鏉ラ厤缃畁ginx涓婄殑铏氭嫙涓绘満锛岄€氳繃浣跨敤瀹樻柟鎻愪緵鐨刱onga webui宸ュ叿konga锛屼娇寰楅厤缃鐞嗗彲瑙嗗寲
Kong鐨勫嚑涓噸瑕佹蹇?/h3>
1銆乽pstream
鍜宯ginx閲岄潰鐨剈pstream涓€鑷?br/>api鍦板潃锛?a href="http://192.168.1.16:8001/upstreams" rel="nofollow">http://192.168.1.16:8001/upstreams
閲嶈瀛楁锛?br/>name锛氬繀椤婚厤缃紝鍜屽悗闈ervice鍏宠仈鐨勬椂鍊欎娇鐢?br/>algorithm锛氶粯璁ound-robin銆傜洰鍓嶆敮鎸佷笁绉嶏細round-robin, consistent-hashing, least-connections
API閰嶇疆绀轰緥锛氬垱寤簎pstream
curl -i -X POST --url http://192.168.1.16:8001/upstreams/ --data 鈥榥ame=fjwjw-dev-web鈥? --data 鈥榓lgorithm=round-robin鈥?
curl -i -X POST --url http://192.168.1.16:8001/upstreams/ --data 鈥榥ame=fjwjw-dev-static鈥? --data 鈥榓lgorithm=round-robin鈥?
2銆乼arget
鍜屽墠闈㈢殑upstream鐩稿叧鑱旓紝閰嶇疆鍚庣web涓棿浠剁殑ip鍦板潃鍜岀鍙o紝鏉冮噸绛?br/>api鍦板潃锛?a href="http://192.168.1.16:8001/upstreams/fjwjw-dev-web/targets" rel="nofollow">http://192.168.1.16:8001/upstreams/fjwjw-dev-web/targets (fjwjw鏄墠闈pstream鐨勫悕绉?
閲嶈瀛楁锛?br/>target: 鍚庣web涓棿浠剁殑ip鍦板潃鍜岀鍙?涓嶉厤缃鍙i粯璁や负8000
weight锛氭潈閲?/p>
API閰嶇疆绀轰緥锛氬垱寤簍arget锛屽叧鑱斿墠闈㈠垱寤哄ソ鐨剈pstream
curl -i -X POST --url http://192.168.1.16:8001/upstreams/fjwjw-dev-web/targets --data 鈥榯arget=192.168.1.60:80鈥? --data 鈥榳eight=100鈥?
curl -i -X POST --url http://192.168.1.16:8001/upstreams/fjwjw-dev-web/targets --data 鈥榯arget=192.168.1.61:80鈥? --data 鈥榳eight=100鈥?
curl -i -X POST --url http://192.168.1.16:8001/upstreams/fjwjw-dev-static/targets --data 鈥榯arget=192.168.1.13:1457鈥? --data 鈥榳eight=100鈥?
3銆乻ervice
鍜屽墠闈㈢殑upstream鐩稿叧鑱旓紝閰嶇疆铏氭嫙涓绘満鐩稿叧鐨勪俊鎭?br/>api鍦板潃锛?a href="http://192.168.1.16:8001/services/" rel="nofollow">http://192.168.1.16:8001/services/
閲嶈瀛楁锛?br/>name锛氭湇鍔″悕绉?br/>host锛氬拰upstream鐩稿叧鑱旂殑瀛楁
port锛氭寚瀹歶pstream绔彛
protocol锛氭寚瀹氳繛鎺ュ悗绔殑鍗忚
connect_timeout锛氬鎴风杩炴帴瓒呮椂鏃堕暱
read_timeout: 瀹㈡埛绔鍙栬秴鏃舵椂闀?br/>write_timeout: 瀹㈡埛绔啓鍏ヨ秴鏃舵椂闀?br/>ca_certificates锛氭湇鍔$ca璇佷功鐩稿叧鍏宠仈
client_certificate: 瀹㈡埛绔瘉涔︾浉鍏?br/>retries锛氬悗绔噸璇曟鏁?/p>
API閰嶇疆绀轰緥锛氬垱寤簊ervice锛屽叧鑱攗pstream
curl -i -X POST --url http://192.168.1.16:8001/services/ --data 鈥榥ame=fjwjw-dev-web鈥? --data 鈥榩ath="/web"鈥? --data 鈥榰rl=http://fjwjw-dev-web鈥?
curl -i -X POST --url http://192.168.1.16:8001/services/ --data 鈥榥ame=fjwjw-dev-static鈥? --data 鈥榩ath=/鈥? --data 鈥榰rl=http://fjwjw-dev-static鈥?
4銆乺oute
api鍦板潃锛?a href="http://192.168.1.16:8001/routes" rel="nofollow">http://192.168.1.16:8001/routes
閲嶈瀛楁锛?br/>name锛氳矾鐢辫鍒欑殑鍚嶇О
paths锛氳矾寰?br/>service锛氬拰鍝釜service鍏宠仈
methods: 鏀寔鐨刪ttp鏂规硶锛堥渶瑕佸ぇ鍐欙級
hosts: 鍏蜂綋璁块棶鐨勫煙鍚?/p>
API閰嶇疆绀轰緥锛氬垱寤簉oute,鍜屽墠闈㈢殑service鐩稿叧鑱?/p>
curl -i -X POST --url http://192.168.1.16:8001/services/fjwjw-dev-web/routes --data 鈥榥ame=fjwjw-dev-web鈥? --data 鈥榟osts[]=fjszyws.dev.59iedu.com鈥? --data 鈥榩aths=/web鈥? --data 鈥榩reserve_host=true鈥? --data 鈥榮trip_path=false鈥?
curl -i -X POST --url http://192.168.1.16:8001/services/fjwjw-dev-static/routes --data 鈥榥ame=fjwjw-dev-static鈥? --data 鈥榟osts[]=fjszyws.dev.59iedu.com鈥? --data 鈥榩aths=/鈥? --data 鈥榩reserve_host=true鈥? --data 鈥榮trip_path=false鈥?
5銆乧onsumer
Consumer鏄娇鐢⊿ervice鐨勭敤鎴凤紝鍏舵牳蹇冨師鍒欐槸涓哄叾娣诲姞Plugin鎻掍欢,浠庤€岃嚜瀹氫箟浠栫殑璇锋眰琛屼负.
鏈€绠€鍗曠殑鐞嗚В鍜岄厤缃甤onsumer鐨勬柟寮忔槸,灏嗗叾浜庣敤鎴疯繘琛屼竴涓€鏄犲皠,鍗充竴涓猚onsumer浠h〃涓€涓敤鎴凤紙鎴栧簲鐢級
api鍦板潃锛?a href="http://192.168.1.16:8001/consumers" rel="nofollow">http://192.168.1.16:8001/consumers
浣跨敤API缃戝叧闇€瑕佸摢浜涙柟闈㈢殑璋冩暣鍜屾寫鎴?/h3>
1銆?鍔ㄩ潤鍒嗙瀹屽叏鎷嗗垎
鐩墠鎴戜滑椤圭洰鐨勫墠鍚庣鐨勫叆鍙i兘鏄痭ginx锛屽煙鍚嶅畬鍏ㄤ竴鑷淬€?br/>api缃戝叧瀹為檯涓婃洿閫傚悎澶勭悊鍔ㄦ€侀儴鍒嗙殑璇锋眰銆傝櫧鐒朵笉鎷嗗垎鍓嶅悗绔姹傚煙鍚嶄篃鑳芥弧瓒崇幇鏈夐渶姹傦紝浣嗕粠瑙勮寖鎬т互鍙婂悗缁潤鎬佽祫婧怌DN鍔犻€熺瓑鏂归潰鑰冭檻锛屽缓璁墠鍚庣鍩熷悕杩涜鎷嗗垎銆?br/>鍙﹀锛屾媶鍒嗕箣鍚巃pi缃戝叧鍜孠8S鏈嶅姟闆嗘垚锛屽彲浠ヤ娇鐢↘8S鏈嶅姟鍚嶄笌鍚庣杩涜鍔ㄦ€佸叧鑱斻€?/p>
2銆佹棩蹇楁敹闆嗕笌鍒嗘瀽
浣跨敤api缃戝叧涔嬪悗锛屾墍鏈夌殑椤圭洰鏃ュ織闆嗕腑鍖栧瓨鍌紝杩愮淮鍒嗘瀽涓婂皢甯︽潵鎸戞垬锛岄渶瑕佷竴濂楀畬鏁寸殑鏃ュ織瑙e喅鏂规
3銆佹牳蹇冩彃浠堕€傞厤
浣跨敤api缃戝叧涔嬪悗锛屽鎴风璁よ瘉銆侀壌鏉冦€佹祦鎺х瓑宸ヤ綔涓嶉渶瑕佸啀鐢卞簲鐢ㄧ▼搴忓畬鎴愶紝缃戝叧灞傚彲浠ユ壙鎷呰繖閮ㄥ垎宸ヤ綔锛屽湪璁よ瘉銆侀壌鏉冦€佹祦鎺ф彃浠朵笂闇€瑕侀€傞厤鎴戜滑鐨勯」鐩拰搴旂敤
以上是关于API缃戝叧Kong的主要内容,如果未能解决你的问题,请参考以下文章