免费看今天开始做女神的网站,网络营销推广与策划实训总结,淘宝上的网站建设可信,wordpress推广升级vipApache APISIX是Apache软件基金会下的顶级项目#xff0c;由API7.ai开发并捐赠。它是一个高性能的云原生API网关#xff0c;具有动态、实时等特点。
APISIX网关可作为所有业务的流量入口#xff0c;为用户提供了丰富的功能#xff0c;包括动态路由、动态上游、动态证书、A…Apache APISIX是Apache软件基金会下的顶级项目由API7.ai开发并捐赠。它是一个高性能的云原生API网关具有动态、实时等特点。
APISIX网关可作为所有业务的流量入口为用户提供了丰富的功能包括动态路由、动态上游、动态证书、A/B测试、灰度发布金丝雀发布、蓝绿部署、限速、防攻击、指标收集、监控报警、可观测性和服务治理等。基于Nginx和OpenResty构建的APISIX通过Lua语言扩展了其功能具有高性能和低延迟的特点是构建现代微服务架构的理想选择。
接下来本文将介绍如何安装并运行APISIX!
APISIX基础概念
上游Upstream
上游是指应用层服务或节点的抽象。它的作用是对服务节点进行负载均衡以确保请求能够被有效地处理。在APISIX中上游的地址信息可以直接配置到路由或服务上。通过创建上游对象可以在多个路由或服务中共享相同的上游配置从而简化管理和维护。
路由Route
路由是APISIX中最核心的资源对象之一。它定义了请求的匹配规则并根据匹配结果执行相应的操作。路由通常包含以下三个重要部分
匹配规则用于确定请求是否与路由匹配。插件配置用于在请求生命周期中执行特定的逻辑操作。上游信息指定请求应该被转发到哪个上游服务。
通过路由的配置可以实现诸如路由转发、请求过滤、流量控制等功能。
服务Service
服务是某类API的抽象通常与上游服务一一对应。它定义了API的基本信息包括访问路径、后端服务地址等。路由与服务之间的关系通常是N:1的即多个路由可以引用同一个服务。
消费者Consumer
消费者是指使用API服务的客户端。消费者需要进行认证并获得访问权限才能够使用API提供的服务。在APISIX中消费者可以与插件或上游服务进行绑定从而实现个性化的访问控制和流量管理。
插件Plugin
插件是扩展APISIX应用层能力的重要机制。它们在请求或响应的生命周期中执行特定的逻辑操作以实现诸如请求转发、请求修改、流量控制等功能。插件可以与路由、服务或消费者进行绑定以实现个性化的功能定制和流量处理。
Admin API
APISIX 提供了 Admin API 和直观的 Dashboard这些工具使得配置 Apache APISIX 路由、上游、服务、SSL 证书等功能变得简单而直观。
通过 Admin API用户可以轻松地获取、创建、更新和删除资源。APISIX 具有热加载能力这意味着在资源配置完成后APISIX 会自动更新配置无需重新启动服务。Dashboard 则提供了可视化界面用户可以直观地管理和监控 APISIX 的各项功能。
Admin API 和 Dashboard 的使用使得对 API 网关的管理变得高效且易于维护。通过这些工具用户可以根据需要动态地调整和优化 API 网关的配置从而满足不同的业务需求。
APISIX的架构设计如下所示 其中APISIX 核心包括路由匹配、负载均衡、服务发现、API 管理等重要功能以及配置管理等基础模块。同时APISIX 还提供了丰富的内置插件涵盖了可观测性、安全、流量控制等方面。
Admin API 和 Dashboard 为用户提供了一种简单而强大的方式使得用户可以轻松地管理和配置他们的 API 网关从而更好地满足业务需求。
安装APISIX 本文中提供的安装方法适用于 CentOS 7 和 CentOS 8。如果你选择该方法安装 APISIX需要先安装 etcd。 安装etcd APISIX 使用 etcd 作为配置中心进行保存和同步配置。在安装 APISIX 之前需要在你的主机上安装 etcd。 如果你在安装 APISIX 时选择了 Docker 或 Helm 安装那么 etcd 将会自动安装如果你选择其他方法或者需要手动安装 APISIX请参考以下步骤安装 etcd。 APISIX要求ETCD版本3.5以上 ETCD_VERSION3.5.4
wget https://github.com/etcd-io/etcd/releases/download/v${ETCD_VERSION}/etcd-v${ETCD_VERSION}-linux-amd64.tar.gz
tar -xvf etcd-v${ETCD_VERSION}-linux-amd64.tar.gz \
cd etcd-v${ETCD_VERSION}-linux-amd64 \
sudo cp -a etcd etcdctl /usr/bin/编写systemd /etc/systemd/system/etcd.service
[Unit]
Descriptionetcd service
Documentationetcd service
Afternetwork.target[Service]
Typesimple
ExecStart/usr/bin/etcd
Restarton-failure
RestartSec30s[Install]
WantedBymulti-user.target
安装APISIX
如果当前系统没有安装 OpenResty请使用以下命令来安装 OpenResty 和 APISIX 仓库。
yum install -y https://repos.apiseven.com/packages/centos/apache-apisix-repo-1.0-1.noarch.rpm如果已安装 OpenResty 的官方 RPM 仓库请使用以下命令安装 APISIX 的 RPM 仓库。
yum install yum-utils -y
yum-config-manager --add-repo https://repos.apiseven.com/packages/centos/apache-apisix.repo完成上述操作后使用以下命令安装 APISIX
yum install apisix -y管理 APISIX 服务
APISIX 安装完成后你可以运行以下命令初始化 NGINX 配置文件和 etcd
apisix init使用以下命令启动 APISIX
apisix start建议使用systemd进行后续的管理
使用RPM 方式安装的默认已经配置好apisix的systemd 位于r/usr/lib/systemd/system/apisix.service
# apisix systemd service
# https://github.com/api7/apisix-build-tools/blob/master/usr/lib/systemd/system/apisix.service
[Unit]
Descriptionapisix
#Conflictsapisix.service
Afternetwork-online.target
Wantsnetwork-online.target[Service]
Typeforking
Restarton-failure
WorkingDirectory/usr/local/apisix
ExecStartPre/bin/rm -f /usr/local/apisix/logs/worker_events.sock
ExecStart/usr/bin/apisix start
ExecStop/usr/bin/apisixstop
ExecReload/usr/bin/apisix reload
LimitNOFILE65536[Install]
WantedBymulti-user.target
配置APISIX
通过修改本地的配置文件例如 /usr/local/apisix/conf/config.yaml 文件。
或者在启动 APISIX 时使用 -c 或 --config 添加文件路径参数 apisix start -c path string完成对 APISIX 服务本身的基本配置。
举例配置
apisix:node_listen:- 9080- 80 # API6默认HTTP监听端口这里列出了两个允许同时访问9080和80端口ssl: # 开启SSL模块启用HTTPSenable: truelisten:- port: 443 # HTTPS默认端口- port: 9443 # 可选端口建议删除只保留443作为默认端口enable_ipv6: falseenable_control: true # 开启管理端口和相关Dashboard端口control:ip: 0.0.0.0port: 9092 # 管理端口用于API6的管理操作和Dashboard的访问
deployment:admin:allow_admin: # 允许admin用户执行key的网段详见https://nginx.org/en/docs/http/ngx_http_access_module.html#allow- 0.0.0.0/0 admin_key:- name: adminkey: thisisakeyrole: admin # admin角色管理所有配置数据- name: viewerkey: 4054f7cf07e344346cd3f287985e76a2role: vieweretcd: # ETCD连接地址如果不使用Docker部署可修改为其他IPhost: # 可以定义同一个ETCD集群的多个ETCD主机地址- http://localhost:2379 # 这里的ETCD也可以修改为宿主机IPprefix: /apisix # API6配置前缀timeout: 30 # 超时时间30秒
plugin_attr: # Prometheus相关配置此处可以保持默认后续再添加监控prometheus:export_addr:ip: 0.0.0.0port: 9091 # Prometheus导出端口用于数据采集启动APISIX
systemctl enable --now apisix可以通过 curl 来访问正在运行的 APISIX 实例。比如你可以发送一个简单的 HTTP 请求来验证 APISIX 运行状态是否正常
curl http://127.0.0.1:9080 --head | grep Server现在你已经成功安装并运行了 APISIX
部署 Dashboard
安装步骤
安装RPM包
sudo yum install -y https://github.com/apache/apisix-dashboard/releases/download/v3.0.1/apisix-dashboard-3.0.1-0.el7.x86_64.rpm启动方式
在Shell中运行dashboard
sudo manager-api -p /usr/local/apisix/dashboard/或者作为服务运行dashboard
systemctl start apisix-dashboard访问Dashboard
在不修改配置的情况下通过浏览器访问 http://127.0.0.1:9000 使用GUI界面的Dashboard。默认的用户名和密码为admin。
通过以上步骤你已经成功安装并部署了Apache APISIX Dashboard。
参考
APISIX安装指南
APISIX官方文档
API7.ai官网