Kong Api 閘道器使用 docker 部署

2021-09-12 21:45:38 字數 2362 閱讀 1914

kong 映象:

官網給定的使用者安裝手冊上並沒有設定 pg 的密碼,導致如下問題無法啟動

nginx: [error] init_by_lua error: /usr/local/share/lua/5.1/kong/init.lua:277: [postgresql error] failed to >retrieve server_version_num: connection refused

stack traceback:[c]: in function 'assert'

/usr/local/share/lua/5.1/kong/init.lua:277: in function 'init'

init_by_lua:3: in main chunk

後在 issues 中找到問題原因及解決方法(裡面還有個docker-compose):

kong 使用 postgresql 或 cassandra 儲存資料,這裡我們選用 pg

# 建立 pg 資料庫 容器

docker run -d --name kong-database \

-p 5432:5432 \

-e "postgres_user=kong" \

-e "postgres_db=kong" \

-e "postgres_password=your_pg_password" \

postgres:9.6

# kong 資料遷移到 pg

docker run --rm \

--link kong-database:kong-database \ #將 kong-database 容器的位址引入註冊到本容器

-e "kong_database=postgres" \

-e "kong_pg_host=kong-database" \

-e "kong_pg_password=your_pg_password" \ # 官方文件未給出此引數 pg 可能不支援無密登入了

-e "kong_cassandra_contact_points=kong-database" \

kong kong migrations bootstrap

#建立 kong 容器

docker run -d --name kong \

--link kong-database:kong-database \

-e "kong_database=postgres" \

-e "kong_pg_host=kong-database" \

-e "kong_pg_password=your_pg_password" \

-e "kong_cassandra_contact_points=kong-database" \

-e "kong_proxy_access_log=/dev/stdout" \

-e "kong_admin_access_log=/dev/stdout" \

-e "kong_proxy_error_log=/dev/stderr" \

-e "kong_admin_error_log=/dev/stderr" \

-e "kong_admin_listen=0.0.0.0:8001, 0.0.0.0:8444 ssl" \

-p 8000:8000 \ # http **埠

-p 8443:8443 \ # https **埠

-p 8001:8001 \ # http 管理介面

-p 8444:8444 \ # https 管理介面

kong

#檢視是否啟動

docker ps

#如未啟動通過日誌檢視問題

docker logs kong

#如正常啟動 可訪問管理api(替換成你的ip)

curl -x get

因為 kong 服務是在容器中,所以設 kong_admin_listen 為全域性監聽才能通過宿主機ip**訪問,宿主機則需對相應的對映埠做訪問限制,如本機/內網訪問,且不應該對外網可訪問,不然誰都可以改你的api閘道器策略了。

kong docker 映象的配置檔案路徑為 /etc/kong/kong.conf

如需自定義配置檔案,自行掛載即可。

kong 配置項手冊:

...

-v /opt/kong/kong.conf:/etc/kong/kong.conf

...

管理閘道器的api的使用教程這裡就不寫了,自行覓食吧~簡單的看看下面這篇可以的

kong 整合 jwt 外掛程式:

kong服務閘道器api:

dock基本使用

要安裝最新的 docker 版本,首先需要安裝 apt transport https 支援,之後通過新增源來安裝。要安裝最新的 docker 版本,首先需要安裝 apt transport https 支援,之後通過新增源來安裝。sudo docker images 顯示本地已有的映象 sudo ...

Dock的使用記錄

企業應用架構模式 企業批量購書 分享 關注商品舉報 程式設計師 技術討論會 的各種ppt systemctl stop firewalld.service 停止firewall systemctl disable firewalld.service 禁止firewall開機啟動 sudo apt g...

Dock 使用筆記

建立以及執行 docker run it 映象 進入映象 對映象進行cmd操作 docker run itd name 別名 容器name 容器id bin bash 後台執行 容器 docker start停止執行 docker stop 容器name 容器id 檢視執行容器 dockr ps 檢...