kong入門實戰

?

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。

安裝kong-database

docker run -d --name kong-database \-p 5432:5432 \-e "POSTGRES_USER=kong" \-e "POSTGRES_DB=kong" \postgres:9.4

安裝kong

docker run -d --name kong \--link kong-database:kong-database \-e "KONG_DATABASE=postgres" \-e "KONG_CASSANDRA_CONTACT_POINTS=kong-database" \-e "KONG_PG_HOST=kong-database" \-p 8000:8000 \-p 8443:8443 \-p 8001:8001 \-p 7946:7946 \-p 7946:7946/udp \kong:latest

8000端口 http 監聽客戶端傳入的HTTP流量
8443端口 https 監聽客戶端傳入的HTTPS流量
8001端口 admin api監聽端口

安裝kong-dashboard

docker run -d -p 8080:8080 --name kong-dashboard pgbi/kong-dashboard:v2

kong-dashboard管控臺訪問地址http://172.16.222.115:8080

ffddf318-128f-49ab-9210-23aa5515071c

cbdf7212-682a-453f-89b1-67dd102f908f

注冊api服務

有如下兩個api服務

http://172.16.222.115:8129/info

http://172.16.222.115:8129/users

向kong中添加api

curl -i -X POST --url http://172.16.222.115:8001/apis/ --data 'name=info' --data 'uris=/info,/getinfo' --data 'methods=GET' --data 'upstream_url=http://172.16.222.115:8129/info' --data 'strip_uri=true'
curl -i -X POST --url http://172.16.222.115:8001/apis/ --data 'name=users' --data 'uris=/users,/getusers' --data 'methods=GET' --data 'upstream_url=http://172.16.222.115:8129/users' --data 'strip_uri=true'

注意:

name為api服務名不能重復

hosts、uris、methods至少應指定一個,uris指定該api在kong上訪問時的uri路徑,當有多個時使用逗號分割

upstream_url為真正的api服務地址

strip_uri表示通過其中一個uris前綴匹配API時,是否從upstream_url中刪除匹配到的uris前綴。默認值:true

kong-dashboard管控臺api列表

2a3b61dc-4bde-4486-835d-e77c37e802a3

訪問注冊在kong中的api服務

curl -i -X GET --url http://172.16.222.115:8000/info
curl -i -X GET --url http://172.16.222.115:8000/getinfo
curl -i -X GET --url http://172.16.222.115:8000/users
curl -i -X GET --url http://172.16.222.115:8000/getusers

從kong中刪除api

curl -i -X DELETE http://172.16.222.115:8001/apis/info
curl -i -X DELETE http://172.16.222.115:8001/apis/users

查看apis列表

curl -i -X GET http://172.16.222.115:8001/apis

或瀏覽器訪問http://172.16.222.115:8001/apis

插件管理

添加插件

/apis/{name or id}/plugins/

  • 安裝file-log插件
curl -X POST http://172.16.222.115:8001/apis/{api}/plugins \--data "name=file-log" \--data "config.path=/tmp/file.log"
  • 安裝rate-limiting
curl -X POST http://172.16.222.115:8001/apis/{api}/plugins \--data "name=rate-limiting" \--data "config.second=5" \--data "config.hour=10000"
  • 安裝ip-restriction插件
curl -X POST http://172.16.222.115:8001/apis/{api}/plugins \--data "name=ip-restriction" \--data "config.whitelist=172.16.222.115"--data "config.blacklist=143.1.0.0/24"
  • 安裝key-auth插件
curl -X POST http://172.16.222.115:8001/apis/{api}/plugins \--data "name=key-auth" \--data "config.hide_credentials=true" --data "config.key_names=apikey"

創建Consumer

curl -X POST http://172.16.222.115:8001/consumers/ \--data "username=admin" \--data "custom_id=qtonecloud-admin"curl -X POST http://172.16.222.115:8001/consumers/ \--data "username=guest" \--data "custom_id=qtonecloud-guest"    

創建API Key

curl -X POST http://172.16.222.115:8001/consumers/{consumer}/key-auth -d ''   

使用API Key調用服務

curl http://172.16.222.115:8000/getusers?apikey=ad097442ea4e4e0c911da52ad5c4cea2
  • 安裝basic-auth插件
curl -X POST http://172.16.222.115:8001/apis/{api}/plugins \--data "name=basic-auth" \--data "config.hide_credentials=true"

創建Consumer

curl -d "username=qtonecloud&custom_id=qtonecloud" http://172.16.222.115:8001/consumers/

創建Credential

curl -X POST http://172.16.222.115:8001/consumers/{consumer}/basic-auth \--data "username=admin" \--data "password=admin"

使用Credential調用api服務

curl http://172.16.222.115:8000/getusers \-H 'Authorization: Basic YWRtaW46YWRtaW4='

其中YWRtaW46YWRtaW4=為上一步中usernamepassword的Base64編碼后的值即admin:admminBase64編碼后的值

  • 安裝ACL插件

ACL依賴authentication plugin

安裝acl,添加組白名單、黑名單

curl -X POST http://172.16.222.115:8001/apis/{api}/plugins \--data "name=acl" \--data "config.whitelist=user, admin"--data "config.blacklist=guest"

關聯Consumers

curl -X POST http://172.16.222.115:8001/consumers/{consumer}/acls \--data "group=guest"

啟用任何一種Authentication插件,如之前安裝的basic-authkey-auth插件

使用對應的Authentication插件認證方式調用api

查看插件列表

curl -i -X GET http://172.16.222.115:8001/plugins

或瀏覽器訪問http://172.16.222.115:8001/plugins

kong-dashboard管控臺插件列表

a8fded29-810d-4f66-96c8-23ef74ba5274

rate-limiting插件限流

9dd6daa2-0d6f-4d62-915f-caa541d90154

ip-restriction插件IP黑名單

3fbe93eb-7022-4ab3-b535-4099f3b7d389

key-auth插件

8c25a288-0943-4ba3-8a7c-379b62d05323

basic-auth

acl

13feae52-3b34-49b1-a84c-d593c5340c49

同時啟用basic-auth和acl

參考資料

https://getkong.org/install/docker/

https://getkong.org/plugins/

https://github.com/PGBI/kong-dashboard

?

原文地址:?https://github.com/ameizi/DevArticles/issues/165

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/449493.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/449493.shtml
英文地址,請注明出處:http://en.pswp.cn/news/449493.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

PAT A1048

示例思想中提到了二分以及two point概念,這個需要后面進行總結;這個示例也給出了一個新的思路。對于兩個數字和m,查找兩個加數,可以進行i和m-i的枚舉,通過遍歷數組查看兩個加數是否存在,來進行遍歷&#xf…

linux 32位平臺,文件大小受限于2G的解決方法

公司的asterisk系統已經發生了兩次crash,檢查日志,都是在日志文件寫滿到2G后自動執行轉儲時,日志還在寫繼續寫入而導致的。google以后,發現了下面這邊文章,贊!解決了文件大小限于2G的問題,轉帖到…

【noip模擬賽4】Matrix67的派對 暴力dfs

【noip模擬賽4】Matrix67的派對描述 Matrix67發現身高接近的人似乎更合得來。Matrix67舉辦的派對共有N(1<N<10)個人參加&#xff0c;Matrix67需要把他們安排在圓桌上。Matrix67的安排原則是&#xff0c;圓桌上任意兩個相鄰人的身高之差不能超過K。請告訴Matrix67他共有多…

Backtrader多周期回測

獲取數據 result pd.read_csv(11.csv) df pd.DataFrame(dataresult) df df.set_index([datetime]) df 策略 class MultiTFStrategy(bt.Strategy):params ((period, 20),)# states definationEmpty, M15Hold, H1Hold, D1Hold range(4)States [Empty, M15Hold, H1Hold, D…

CentOS 7 防火墻操作

導語 今天說下防火墻的操作。CentOS 6 的防火墻是 iptables&#xff0c;CentOS 7 默認的是 firewall&#xff0c;以前的操作不再適用。 查看、開啟 服務器剛剛重啟完畢&#xff0c;先來看下防火墻的狀態&#xff0c;輸入 systemctl status firewalld 進行查看 這里是關閉的&…

Centos安裝nmon軟件 ( 測試 )

安裝 mkdir /usr/local/nmon cd /usr/local/nmon wget http://sourceforge.net/projects/nmon/files/nmon_linux_14i.tar.gz tar zxvf nmon_linux_14i.tar.gz chmod 777 nmon_x86_64_sles11 12345 啟動 ./nmon_x86_64_sles11 1 說明&#xff1a; 按C顯示CPU信息&#xff0c;再按…

阿里云安裝Quantaxis

參考博客&#xff1a;https://github.com/QUANTAXIS/QUANTAXIS/issues/1395 之后進入阿里云中的Ubuntu界面 輸入&#xff1a; sudo yum install apt-transport-https ca-certificates curl software-properties-common Sudo yum install curl service network restartcd qua…

sorted_一個函數秒殺冒泡排序算法和選擇排序

sorted一招殺a [3,9,12,4,5,7,8,110]print(sorted(a,reverseTrue))# true為降序print(sorted(a,reverseFalse))# revers false為升序print(sorted(a))#默認是false升序排列Bubble_sort下面看看坑死人無數的冒泡排序內循環和外循環每次循環依次比較大小并來回挪坑,直到把目標值…

轉載給ffmpeg入門級:我的第一個調用FFmpeg庫的程序出爐

好消息&#xff0c;寫了第一個使用了ffmpeg的庫的小程序。看起來就是這么簡單的一個消息&#xff0c;但是you have no idea how much work that I did before it works...廢話少說&#xff0c;總結記錄之。。。一、安裝好Linux的虛擬機。我用的是FEDORA-16&#xff0c;當然別的…

runC爆嚴重安全漏洞,主機可被攻擊!使用容器的快打補丁

容器的安全性一直是容器技術的一個短板。關于容器最大的安全隱患是攻擊者可以使用惡意程序感染容器&#xff0c;更嚴重時可以攻擊主機系統。 2月11日&#xff0c;安全研究員Adam Iwaniuk和BorysPop?awski發現了容器運行時runC的一個安全漏洞&#xff0c;這個漏洞可以讓上述情況…

pandas操作sql數據庫

導包 import pymssql from sqlalchemy import create_engine import pandas as pd 連接數據庫 #讀數據 conn pymssql.connect(server.,user sa,password test,databasepos) sql select * from stock_data df0 pd.read_sql(sql,conn) 寫入數據 df pd.read_csv(option_…

MongoDB Mobile Sync for iOS推出Beta版本

2019年2月11日&#xff0c;MongoDB官方博客發文稱MongoDB Mobile Sync for iOS的Beta版本即將推出。MongoDB Mobile支持使用單一查詢語言進行本地和遠程數據訪問&#xff0c;包含兩個核心部分&#xff1a; MongoDB數據庫的移動優化版本&#xff0c;運行在本地設備上&#xff0c…

gdb好文章:GDB十分鐘教程

&#xff08;GUI調試器&#xff1a;insight和ddd&#xff09; list(l) &#xff1a;其作用就是列出程序的源代碼&#xff0c;默認每次顯示10行。 list 行號&#xff1a;將顯示當前文件以“行號”為中心的前后10行代碼&#xff0c;如&#xff1a;list 12 list 行號1,行號2: 將…

機器學習預測+akshare

import pandas as pd import akshare as ak import numpy as np import talib from datetime import datetime, timedelta import time 獲取股票數據 from_date 2010-01-01 from_date datetime.strptime(from_date,"%Y-%m-%d") day_nums 1 current_dt time.st…

[python作業AI畢業設計博客]比Selenium IDE更好用的錄制工具: Katalon Recorder

Selenium IDE(集成開發環境 Integrated Development Environment)是用于構建測試腳本的原型工具。 它是一個Firefox插件&#xff0c;提供了易于使用的界面&#xff0c;用于開發自動化測試。 但是最新的Selenium IDE總是彈出一系列如下的對話框&#xff0c;不能直接錄制&#xf…

CentOS 7 : Docker私有倉庫搭建和使用

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 系統環境&#xff1a; CentOS 7.2 192.168.0.179&#xff1a;docker倉庫 192.168.0.60&#xff1a;客戶端 安裝并啟動docker yum -y…

價值投資/指標選股(akshare)

利用akshare的數據源&#xff0c;可以獲取所有的股票數據以及公開的財務數據&#xff0c;可以進行條件篩選&#xff0c;獲取滿足條件的股票。 這套模板可以用于價值投資&#xff0c;指標選股。選股周期為日線級別。然后結果可以郵箱發送。 import time import akshare as ak #…

gdb常用命令

[rootredhat home]#gdb 調試文件&#xff1a;啟動gdb (gdb) l &#xff1a;&#xff08;字母l&#xff09;從第一行開始列出源碼 (gdb) break n :在第n行處設置斷點 (gdb) break func&#xff1a;在函數func()的入口處設置斷點 (gdb) info break&#xff1a; 查看斷點信息 (gdb…

有前途的人工智能大數據分析相關職業:Python數據科學入門之路

2019獨角獸企業重金招聘Python工程師標準>>> 為什么學習Python數據科學&#xff1f; Python是數據科學職業所需的寶貴技能之一。Python是數據科學的首選編程語言。 2016年&#xff0c;它超越了R on Kaggle&#xff0c;這是數據科學競賽的首選平臺。2017年&#xff0…

遍歷Map key-value的兩種方法、遍歷Set方法

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 第一種遍歷方法 : 先獲取Map中的所有key值&#xff0c;然后根據key&#xff0c;依次從Map中去數據 Map<String,String> test…