APISIX在CentOS7下安装使用

Posted 安全防护技术

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了APISIX在CentOS7下安装使用相关的知识,希望对你有一定的参考价值。

前言

因为工作需要用到API网关,所以研究了一下目前常用的API网关。综合考虑选择了APISIX,这个网关已经开源,并且已经进入 Apache 进行孵化。APISIX性能非常好,而且是一款云原生、高性能、可扩展的微服务 API 网关。当然最重要的是这款API网关是国人写的-。-
由于公司网络的问题,本次安装均是通过 RPM 包安装,也可以直接用yum安装

安装etcd

需要安装etcd3.4以上的版本;
Apache APISIX 从 v2.0 开始不再支持 v2 版本的 etcd,并且 etcd 最低支持版本为 v3.4.0,因此请使用 etcd 3.4.0+。
etcd的安装不是本文的重点,安装步骤见Etcd在Linux CentOS7下载、安装

etcd启动命令:

[root@localhost conf]# systemctl start etcd

安装apisix

主要是参考官方文档how-to-build.md

通过 RPM 包安装apisix

在官网上下载rpm包,然后执行以下命令
可以通过官网下载,然后复制到centos环境;也可以直接yum下载(yum不稳定,可能下载失败)

[root@localhost conf]# rpm -ivh apisix-2.10.1-0.el7.x86_64.rpm

初始化 nginx 配置文件和 etcd

[root@localhost conf]# apisix init

修改配置文件,允许所有IP进行访问

考虑到安全性,APISIX 控制台只允许本机访问,修改/usr/local/apisix/conf/config.yaml的allow_admin为all,允许所有的IP地址来访问

启动apisix

[root@localhost conf]# apisix start

测试apisix接口

[root@sdn-253 ~]# curl http://192.168.6.248:9080/apisix/admin/routes?api_key=edd1c9f034335f136f87ad84b625c8f1 -i
HTTP/1.1 200 OK
Date: Tue, 09 Nov 2021 08:24:57 GMT
Content-Type: application/json
Transfer-Encoding: chunked
Connection: keep-alive
Server: APISIX/2.10.1
Access-Control-Allow-Origin: *
Access-Control-Allow-Credentials: true
Access-Control-Expose-Headers: *
Access-Control-Max-Age: 3600

{"action":"get","count":1,"node":{"dir":true,"key":"\\/apisix\\/routes","nodes":[{"modifiedIndex":28,"createdIndex":28,"key":"\\/apisix\\/routes\\/5","value":{"create_time":1636340386,"id":"5","upstream_id":50,"update_time":1636340386,"status":1,"host":"httpbin.org","priority":0,"uri":"\\/get"}}]}}

返回结果中的状态码 200 说明访问成功

安装apisix-dashboard

需要安装2.9版本的dashboard,和apisix2.10版本有对应关系

下载rpm包

yum下载安装命令:

[root@localhost conf]# sudo yum install -y https://github.com/apache/apisix-dashboard/releases/download/v2.9.0/apisix-dashboard-2.9.0-0.el7.x86_64.rpm

在官网上面下载安装包,然后使用rpm安装命令:

[root@localhost conf]# rpm -ivh apisix-dashboard-2.9.0-0.el7.x86_64.rpm

修改配置文件,允许所有IP进行访问

[root@localhost conf]# cd /usr/local/apisix/dashboard/conf
[root@localhost conf]# vim conf.yaml

注意
这里IP地址是0.0.0.0/0,很多文章写的是0.0.0.0没有带掩码,这样不会生效的

启动服务

[root@localhost conf]# sudo nohup manager-api -p /usr/local/apisix/dashboard/ &

apisix访问

API访问

[root@localhost conf]# curl http://127.0.0.1:9080/apisix/admin/routes?api_key=edd1c9f034335f136f87ad84b625c8f1 -i

dashboard访问

http://192.168.6.248:9000/
账号密码都是admin

问题

执行apisix init报错

[root@localhost apisix]# apisix init
/usr/local/openresty/luajit/bin/luajit /usr/local/apisix/apisix/cli/apisix.lua init
Warning! Current maximum number of open file descriptors [1024] is too small, please increase user limits by execute 'ulimit -n <new user limits>' , otherwise the performance is low.

解决方案:
修改 linux openfile 的配置,ulimit -HSn 102400
可以使用命令vim etc/security/limits.conf进行修改。然后在该配置文件中,加入以下参数。
soft nofile 65535
hard nofile 65535
soft nproc 65535
hard nproc 65535

两种停机方式

优雅停机 apisix quit 和强制停机 apisix stop都可以停止运行 Apache APISIX。建议您优先选择优雅停机的方式停止 Apache APISIX,因为这种停止方式能够保证 Apache APISIX 完成了已经接受到的请求之后再停止;而强制停机则是立即停止 Apache APISIX,在这种情况下,Apache APISIX 接收到但未完成的请求会随着强制停机一并停止。

操作系统是 CentOS 7,且是通过 RPM 包安装 Apache APISIX,可以直接运行以下命令:

[root@localhost conf]# systemctl start apisix
[root@localhost conf]# systemctl stop apisix

参考

Etcd在Linux CentOS7下载、安装
APISIX的安装和简单使用
apisix-dashboard-FAQ.md
apisix安装常见问题归纳
修改linux系统的open files参数

以上是关于APISIX在CentOS7下安装使用的主要内容,如果未能解决你的问题,请参考以下文章

微服务网关 APISIX 群集配置指南

docker部署apisix网关 v1.2

体验 Apache APISIX

apisix 容器安装

docker 安装配置 apisix 网关服务

详解 APISIX Lua 动态调试插件 inspect