APISIX在CentOS7下安装使用
Posted 安全防护技术
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了APISIX在CentOS7下安装使用相关的知识,希望对你有一定的参考价值。
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下安装使用的主要内容,如果未能解决你的问题,请参考以下文章