kong网关的使用

复制代码
关于docker的kong详情https://cloud.tencent.com/developer/article/2339527
和自定义插件https://blog.csdn.net/whos2016/article/details/103034883
docker run -d --name kong-gateway \
 --network=kong-net \
 -e "KONG_DATABASE=postgres" \
 -e "KONG_PG_HOST=kong-database" \
 -e "KONG_PG_USER=kong" \
 -e "KONG_PG_PASSWORD=kong" \
 -e "KONG_PROXY_ACCESS_LOG=/dev/stdout" \
 -e "KONG_ADMIN_ACCE_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" \
 -e "KONG_ADMIN_GUI_URL=http://localhost:8002" \
 -e "KONG_PLUGIN_PATH=/kong/plugins/?.lua;;" \
 -e "KONG_LUA_PACKAGE_PATH=/kong/plugins/my-first-plugin/?.lua;;" \
 -e "KONG_PLUGINS=bundled,my-first-plugin" \
 -e "KONG_CUSTOM_PLUGINS=my-first-plugin" \
 -e "KONG_ADMIN_LISTEN=0.0.0.0:8001, 0.0.0.0:8444 ssl" \
 -e "KONG_LOG_LEVEL=debug" \
 -p 8000:8000 \
 -p 8443:8443 \
 -p 8001:8001 \
 -p 8444:8444 \
 -p 8002:8002 \
 -p 8445:8445 \
 -p 8003:8003 \
 -p 8004:8004 \
 kong/kong-gateway:latest


#带有映射目录的容器
docker run -d --name kong-gateway \
 --network=kong-net \
 -e "KONG_DATABASE=postgres" \
 -e "KONG_PG_HOST=kong-database" \
 -e "KONG_PG_USER=kong" \
 -e "KONG_PG_PASSWORD=kong" \
 -e "KONG_PROXY_ACCESS_LOG=/dev/stdout" \
 -e "KONG_ADMIN_ACCE_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" \
 -e "KONG_ADMIN_GUI_URL=http://localhost:8002" \
 -e "KONG_ADMIN_LISTEN=0.0.0.0:8001, 0.0.0.0:8444 ssl" \
 -e "KONG_LOG_LEVEL=debug" \
 -v "/root/workspace/my-plugins:/kong/plugins" \
 -v "/root/workspace/etc/kong:/etc/kong" \
 -v "/root/workspace/lua_kong/kong:/usr/local/share/lua/5.1/kong" \
 -p 8000:8000 \
 -p 8443:8443 \
 -p 8001:8001 \
 -p 8444:8444 \
 -p 8002:8002 \
 -p 8445:8445 \
 -p 8003:8003 \
 -p 8004:8004 \
 kong/kong-gateway:latest

## 指定一个目录存放kong容器的内容,这个有三个部分 自定插件,kong配置 和lua脚本
mkdir etc lua_kong
docker cp ${container_id}:/etc/kong etc/kong # ${container_id} 换成容器ID,下同
docker cp ${container_id}:/usr/local/share/lua/5.1/kong lua_kong/kong  # 

关于自定义插件内容可以参考文章

手把手教你实现一个Kong网关插件-腾讯云开发者社区-腾讯云

有关问题,进入kong容器内部,修改的配置文件无效被覆盖:因为kong会生成自己定义的配置文件去启动nginx,所以你在/usr/local/kong中的nginx-kong.conf修改的内容是生成式的,每次启动就没了,使用kong启动一个nginx的server方式很简单,在宿主机新建文件,具体内容参考

Kong配置项向导 - 简书 注意添加一个服务器指定的端口是在容器内部,如果kong没有暴露该接口对外是访问不了,你可以该8001然后定义一个路由返回内容

复制代码
server {
    listen 8001; ## 指定端口kong容器一定暴露在宿主机
    location /sayHello {
      return 200 "服务正在升级,请稍后再试8001 ,你想使用kong开启8009服务器提供服务担是该端口是容器内部没有暴露>出来";
    }
}

这些就能使你的kong像nginx和openresty一样工作和设置了。

相关推荐
千里镜宵烛17 小时前
深入 Lua 元表与元方法
junit
安冬的码畜日常2 天前
【JUnit实战3_26】第十五章:表现层测试(下)—— Selenium 在网页测试中的用法
selenium·测试工具·junit·gui测试·junit5·表现层测试
千里镜宵烛3 天前
Lua--数据文件和持久性
开发语言·junit·lua
安冬的码畜日常3 天前
【JUnit实战3_23】 第十四章:JUnit 5 扩展模型(Extension API)实战(上)
测试工具·junit·单元测试·jdbc·h2·extension模型·junit5扩展
安冬的码畜日常4 天前
【JUnit实战3_21】第十二章:JUnit 5 与主流 IDE 的集成 + 第十三章:用 JUnit 5 做持续集成(上):在本地安装 Jenkins
junit·eclipse·jenkins·intellij idea·持续集成·junit5·netbeans
l1t4 天前
利用DeepSeek辅助改写luadbi-duckdb支持日期和时间戳数据类型
c语言·数据库·人工智能·junit·lua·duckdb·deepseek
安冬的码畜日常5 天前
【JUnit实战3_20】第十一章:用 Gradle 运行 JUnit 测试实战
测试工具·junit·单元测试·gradle·软件构建·groovy·junit5
安冬的码畜日常5 天前
【JUnit实战3_19】第十章:用 Maven 3 运行 JUnit 测试(下)
java·测试工具·junit·单元测试·maven·junit5
董广明5 天前
单元测试(JUnit、Mockito、PowerMock )
java·经验分享·junit·单元测试
安冬的码畜日常5 天前
【JUnit实战3_18】第十章:用 Maven 3 运行 JUnit 测试(上)
测试工具·junit·maven·artifact·junit5