HCRM博客

在CentOS系统上轻松部署Kong网关教程

CentOS 系统安装 Kong API 网关实战指南

在微服务架构和 API 经济蓬勃发展的今天,一个强大、可靠的 API 网关已成为技术栈中的关键枢纽,Kong 作为基于 Nginx 和 OpenResty 构建的开源云原生 API 网关,以其高性能、可扩展插件生态和易于管理的特性,赢得了众多开发运维团队的青睐,若您的服务器环境是 CentOS,这份详细安装教程将助您高效部署 Kong 网关。

在CentOS系统上轻松部署Kong网关教程-图1

环境准备:扎实的基础是关键

在CentOS系统上轻松部署Kong网关教程-图2
  1. 操作系统确认: 登录您的 CentOS 服务器,执行 cat /etc/redhat-release 确认系统版本,Kong 支持 CentOS 7 及更高版本(CentOS 8 同样适用),本文以 CentOS 7.6 为例。
  2. 更新系统: 安装前务必更新系统软件包,确保环境稳定安全:
    sudo yum update -y
  3. 安装基础依赖: Kong 运行依赖一些基础库:
    sudo yum install -y epel-release  # 启用 EPEL 仓库
    sudo yum install -y wget openssl-devel

核心依赖安装:数据库与 OpenResty

Kong 需要存储配置、路由、消费者等数据,支持 PostgreSQL(推荐生产使用)或 Cassandra。

  • 安装 PostgreSQL (推荐):

    sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
    sudo yum install -y postgresql12-server postgresql12-contrib
    sudo /usr/pgsql-12/bin/postgresql-12-setup initdb
    sudo systemctl enable --now postgresql-12
  • 配置 PostgreSQL:

    1. 创建 Kong 专用数据库和用户:
      sudo -u postgres psql

      在 PostgreSQL 命令行中执行:

      CREATE USER kong WITH PASSWORD '您的强密码'; -- 替换为实际强密码
      CREATE DATABASE kong OWNER kong;
      \q
    2. 修改认证方式(可选但推荐):编辑 /var/lib/pgsql/12/data/pg_hba.conf,找到 local all all peer 或类似行,将其改为:
      local   all             all                                     trust
      host    all             all             127.0.0.1/32            md5
      host    all             all             ::1/128                 md5

      保存后重启服务:sudo systemctl restart postgresql-12

      在CentOS系统上轻松部署Kong网关教程-图3
  • 安装 OpenResty: Kong 运行于 OpenResty 之上。

    sudo yum install -y yum-utils
    sudo yum-config-manager --add-repo https://openresty.org/package/centos/openresty.repo
    sudo yum install -y openresty

安装 Kong 网关

  1. 下载 Kong 安装包: 访问 Kong 官方下载页面 获取适合 CentOS 的最新 RPM 包链接,例如安装 3.4.x 版本:

    wget https://download.konghq.com/gateway-3.x-centos-7/Packages/k/kong-3.4.1.el7.amd64.rpm
  2. 安装 RPM 包:

    sudo yum install ./kong-3.4.1.el7.amd64.rpm

配置与启动 Kong

  1. 生成初始配置: Kong 提供了默认配置文件模板:

    cp /etc/kong/kong.conf.default /etc/kong/kong.conf
  2. 编辑配置文件: 使用 vinano 编辑 /etc/kong/kong.conf,主要修改数据库连接部分:

    # 使用 PostgreSQL
    database = postgres
    pg_host = 127.0.0.1         # 数据库地址
    pg_port = 5432              # 数据库端口
    pg_user = kong              # 数据库用户
    pg_password = 您的强密码     # 数据库密码
    pg_database = kong          # 数据库名
    # 监听地址 (按需调整)
    proxy_listen = 0.0.0.0:8000, 0.0.0.0:8443 ssl
    admin_listen = 127.0.0.1:8001, 127.0.0.1:8444 ssl
    • proxy_listen: 客户端(API 消费者)访问 Kong 的入口地址和端口。
    • admin_listen: Kong 管理 API 的监听地址(通常建议仅限本地或内网访问)。
  3. 初始化数据库: 执行迁移命令,创建 Kong 所需的数据库表结构:

    kong migrations bootstrap -c /etc/kong/kong.conf

    重要提示: 此操作会清空现有 Kong 数据库,生产环境升级时务必仔细阅读官方迁移文档。

  4. 启动 Kong 服务:

    kong start -c /etc/kong/kong.conf
  5. 验证运行状态:

    curl -i http://127.0.0.1:8001/  # 访问 Admin API

    看到返回 HTTP/1.1 200 OK 及包含 Kong 版本信息的 JSON,表明服务已成功启动。

防火墙配置(如有启用)

若服务器启用了 firewalld,需开放 Kong 的代理端口(如 8000, 8443)和管理端口(如 8001,仅限内部访问):

sudo firewall-cmd --permanent --add-port=8000/tcp
sudo firewall-cmd --permanent --add-port=8443/tcp
# 谨慎开放管理端口到公网,强烈建议仅限内网或VPN访问
# sudo firewall-cmd --permanent --add-port=8001/tcp
sudo firewall-cmd --reload

初步体验 Kong

  1. 访问管理 API: 使用 curlhttpie 工具(或浏览器访问本地):

    curl http://127.0.0.1:8001

    将返回 Kong 的节点信息。

  2. 添加测试路由: 假设您有一个在 http://localhost:8080 运行的后端服务(如一个简单的 HTTP 服务):

    curl -X POST http://127.0.0.1:8001/services \
      --data name=example-service \
      --data url='http://localhost:8080'
    curl -X POST http://127.0.0.1:8001/services/example-service/routes \
      --data paths[]='/example'

    访问 http://<服务器IP>:8000/example,Kong 会将请求代理到 http://localhost:8080

安全与后续建议

  • 保护 Admin API:admin_listen 端口 (8001, 8444) 切勿直接暴露在公网,结合防火墙规则、VPN 或 Kong 自身的认证插件(如 RBAC)进行保护。
  • 启用 HTTPS: 生产环境务必在 proxy_listen 中配置 SSL 证书,并考虑使用 Kong 的 SSL 插件或前置负载均衡器(如 Nginx)终止 SSL。
  • 探索插件: Kong 的核心价值在于其丰富的插件生态(认证、限流、日志、监控等),通过 Admin API 或 Kong Manager UI 轻松启用和配置插件。
  • 监控与日志: 配置日志插件(如 File Log, Syslog, HTTP Log)发送日志到集中平台,并利用 Prometheus 插件进行指标监控。
  • 高可用部署: 生产环境应部署多个 Kong 节点,并搭配 PostgreSQL 集群或 Cassandra 集群实现数据库高可用。

实际部署经验谈

从实际部署经验看,Kong 在 CentOS 上的安装过程清晰直接,关键在于数据库的正确配置和权限管理,初期务必花时间理解配置文件各参数含义,尤其是涉及网络监听和安全的部分,Kong 管理 API 的强大功能是其亮点,但也构成潜在风险点,必须严格管控访问权限,随着业务增长,插件机制能灵活应对各类 API 治理需求,避免后期架构大调整的麻烦,稳定的数据库后端(特别是 PostgreSQL)对保障 Kong 长期平稳运行至关重要。

故障排查提示:

  • 启动失败: 检查 /etc/kong/kong.conf 配置(特别是数据库连接信息)、数据库服务状态、日志 /usr/local/kong/logs/error.log
  • 数据库连接问题: 确认 PostgreSQL 监听地址、端口、用户权限、密码是否正确,检查 pg_hba.conf 认证规则。
  • 端口冲突: 使用 netstat -tulnp | grep <端口号> 检查 8000, 8001, 8443, 8444 等端口是否被其他进程占用。 ⚠️

Kong 在 CentOS 上的成功部署,为您构建现代化、可管理、高安全的 API 基础设施奠定了坚实基础,结合其强大的插件体系,能有效管理微服务通信、保障 API 安全、提升系统可观测性。

本站部分图片及内容来源网络,版权归原作者所有,转载目的为传递知识,不代表本站立场。若侵权或违规联系Email:zjx77377423@163.com 核实后第一时间删除。 转载请注明出处:https://blog.huochengrm.cn/pc/36044.html

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
请登录后评论...
游客游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~