apisix 本地开发环境部署

2024-08-31 04:20

本文主要是介绍apisix 本地开发环境部署,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

apisix 本地开发环境部署

本地开发环境部署可以采用 docker-compose 部署,配置文件如下

apisix 配置文件

apisix:node_listen: 9080 # APISIX 节点监听地址enable_ipv6: falsehttp:port: 9080 # APISIX HTTP 端口#https:#  port: 9443 # APISIX HTTPS 端口#  ssl_cert: /usr/local/apisix/ssl/apisix.crt # APISIX HTTPS 证书#  ssl_cert_key: /usr/local/apisix/ssl/apisix.key # APISIX HTTPS 证书密钥log:level: debug # APISIX 日志级别ouput: ./data/apisix/logs/apisix.log # APISIX 日志输出路径control:ip: "0.0.0.0"port: 9092deployment:type: "single" # 部署模式admin:allow_admin:- 0.0.0.0/0admin_key:- name: "admin" # APISIX Dashboard 管理员用户名key: "edd1c9f034335f136f87ad84b625c8f1" # APISIX Dashboard 管理员密码role: adminetcd:host:- "http://etcd:2379" # ETCD 集群地址timeout: 30 # ETCD 连接超时时间prefix: /apisixhealth_check_retry: 2tls:verify: falseplugins:                           # plugin list (sorted by priority)- request-id                     # priority: 12015- zipkin                         # priority: 12011#- skywalking                    # priority: 12010- opentelemetry                 # priority: 12009- ext-plugin-pre-req             # priority: 12000- fault-injection                # priority: 11000- mocking                        # priority: 10900- serverless-pre-function        # priority: 10000#- batch-requests                # priority: 4010- cors                           # priority: 4000- ip-restriction                 # priority: 3000- ua-restriction                 # priority: 2999- referer-restriction            # priority: 2990- csrf                           # priority: 2980- uri-blocker                    # priority: 2900- request-validation             # priority: 2800- chaitin-waf                    # priority: 2700- multi-auth                     # priority: 2600- openid-connect                 # priority: 2599- cas-auth                       # priority: 2597- authz-casbin                   # priority: 2560- authz-casdoor                  # priority: 2559- wolf-rbac                      # priority: 2555- ldap-auth                      # priority: 2540- hmac-auth                      # priority: 2530- basic-auth                     # priority: 2520- jwt-auth                       # priority: 2510- jwe-decrypt                    # priority: 2509- key-auth                       # priority: 2500- consumer-restriction           # priority: 2400- forward-auth                   # priority: 2002- opa                            # priority: 2001- authz-keycloak                 # priority: 2000#- error-log-logger              # priority: 1091- proxy-cache                    # priority: 1085- body-transformer               # priority: 1080- proxy-mirror                   # priority: 1010- proxy-rewrite                  # priority: 1008- workflow                       # priority: 1006- api-breaker                    # priority: 1005- limit-conn                     # priority: 1003- limit-count                    # priority: 1002- limit-req                      # priority: 1001#- node-status                   # priority: 1000#- brotli                        # priority: 996- gzip                           # priority: 995- server-info                    # priority: 990- traffic-split                  # priority: 966- redirect                       # priority: 900- response-rewrite               # priority: 899- degraphql                      # priority: 509- kafka-proxy                    # priority: 508#- dubbo-proxy                   # priority: 507- grpc-transcode                 # priority: 506- grpc-web                       # priority: 505- public-api                     # priority: 501- prometheus                     # priority: 500- datadog                        # priority: 495- loki-logger                    # priority: 414- elasticsearch-logger           # priority: 413- echo                           # priority: 412- loggly                         # priority: 411- http-logger                    # priority: 410- splunk-hec-logging             # priority: 409- skywalking-logger              # priority: 408- google-cloud-logging           # priority: 407- sls-logger                     # priority: 406- tcp-logger                     # priority: 405- kafka-logger                   # priority: 403- rocketmq-logger                # priority: 402- syslog                         # priority: 401- udp-logger                     # priority: 400- file-logger                    # priority: 399- clickhouse-logger              # priority: 398- tencent-cloud-cls              # priority: 397- inspect                        # priority: 200#- log-rotate                    # priority: 100# <- recommend to use priority (0, 100) for your custom plugins- example-plugin                 # priority: 0#- gm                            # priority: -43- aws-lambda                     # priority: -1899- azure-functions                # priority: -1900- openwhisk                      # priority: -1901- openfunction                   # priority: -1902- serverless-post-function       # priority: -2000- ext-plugin-post-req            # priority: -3000- ext-plugin-post-resp           # priority: -4000stream_plugins:                    # stream plugin list (sorted by priority)- ip-restriction                 # priority: 3000- limit-conn                     # priority: 1003- mqtt-proxy                     # priority: 1000#- prometheus                    # priority: 500- syslog                         # priority: 401# <- recommend to use priority (0, 100) for your custom plugins# wasm:
#   plugins:
#     - name: wasm_log
#       priority: 7999
#       file: t/wasm/log/main.go.wasm# xrpc:
#   protocols:
#     - name: pingpong
plugin_attr:opentelemetry:batch_span_processor:batch_timeout: 2drop_on_queue_full: falseinactive_timeout: 1max_export_batch_size: 2max_queue_size: 6collector:address: otel-collector:4318request_timeout: 3resource:service.name: APISIXtrace_id_source: x-request-id%

apisix-dashboard 配置文件

conf:listen:host: 0.0.0.0port: 9000etcd:endpoints:- http://etcd:2379prefix: /apisixauthentication:expire_time: 3600users:- username: adminpassword: admin- username: userpassword: user%

dashboard-compose 配置文件

version: '3.8'services:apisix:container_name: apisixplatform: linux/amd64restart: alwaysimage: apache/apisix:latestvolumes:- ./deploy/apisix.yml:/usr/local/apisix/conf/config.yaml:ro- ./data/apisix:/dataports:- 9080:9080- 9180:9180- 9091:9091- 9443:9443- 9092:9092networks:- apisixdashboard:container_name: apisix-dashboardplatform: linux/amd64image: apache/apisix-dashboard:2.8restart: alwaysvolumes:- ./deploy/apisix-dashboard.yml:/usr/local/apisix-dashboard/conf/conf.yaml:ro- ./deploy/apisix-dashboard/schema.json:/usr/local/apisix-dashboard/conf/schema.json- ./data/dashboard:/datadepends_on:- etcdports:- "9000:9000/tcp"networks:- apisixetcd:container_name: etcdimage: bitnami/etcd:3platform: linux/amd64volumes:- ./data/etcd/data:/bitnami/etcd/dataenvironment:- ALLOW_NONE_AUTHENTICATION=yes- ETCD_ADVERTISE_CLIENT_URLS=http://etcd:2379ports:- 2379:2379- 2380:2380networks:- apisix
networks:apisix:driver: bridge
  • 其中,在 dashboard-compose 新建 deploy 文件存放 apisix-dashboard.yml 和 apisix.yml 文件,deploy/apisix-dashboard 存放 schema.json 这个schema.json 是 apisix-dashboard 的插件配置文件
  • 在 /data/etcd/data 下存放 etcd配置文件,配置文件如下
name: 'etcd'
data-dir: '/bitnami/etcd/data'
listen-client-urls: 'http://0.0.0.0:2379'
advertise-client-urls: 'http://etcd:2379'
listen-peer-urls: 'http://0.0.0.0:2380'
initial-advertise-peer-urls: 'http://etcd:2380'
initial-cluster: 'etcd=http://etcd:2380'
initial-cluster-token: 'etcd-cluster'
initial-cluster-state: 'new'

最终我们的目录结构

在这里插入图片描述

使用 docker-compose -f dashboard-compose-local.yaml up -d 将apisix 在本地部署起来

这篇关于apisix 本地开发环境部署的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1122869

相关文章

使用Python开发一个带EPUB转换功能的Markdown编辑器

《使用Python开发一个带EPUB转换功能的Markdown编辑器》Markdown因其简单易用和强大的格式支持,成为了写作者、开发者及内容创作者的首选格式,本文将通过Python开发一个Markd... 目录应用概览代码结构与核心组件1. 初始化与布局 (__init__)2. 工具栏 (setup_t

Android实现打开本地pdf文件的两种方式

《Android实现打开本地pdf文件的两种方式》在现代应用中,PDF格式因其跨平台、稳定性好、展示内容一致等特点,在Android平台上,如何高效地打开本地PDF文件,不仅关系到用户体验,也直接影响... 目录一、项目概述二、相关知识2.1 PDF文件基本概述2.2 android 文件访问与存储权限2.

Spring Shell 命令行实现交互式Shell应用开发

《SpringShell命令行实现交互式Shell应用开发》本文主要介绍了SpringShell命令行实现交互式Shell应用开发,能够帮助开发者快速构建功能丰富的命令行应用程序,具有一定的参考价... 目录引言一、Spring Shell概述二、创建命令类三、命令参数处理四、命令分组与帮助系统五、自定义S

Redis在windows环境下如何启动

《Redis在windows环境下如何启动》:本文主要介绍Redis在windows环境下如何启动的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Redis在Windows环境下启动1.在redis的安装目录下2.输入·redis-server.exe

Pytest多环境切换的常见方法介绍

《Pytest多环境切换的常见方法介绍》Pytest作为自动化测试的主力框架,如何实现本地、测试、预发、生产环境的灵活切换,本文总结了通过pytest框架实现自由环境切换的几种方法,大家可以根据需要进... 目录1.pytest-base-url2.hooks函数3.yml和fixture结论你是否也遇到过

Spring Boot项目部署命令java -jar的各种参数及作用详解

《SpringBoot项目部署命令java-jar的各种参数及作用详解》:本文主要介绍SpringBoot项目部署命令java-jar的各种参数及作用的相关资料,包括设置内存大小、垃圾回收... 目录前言一、基础命令结构二、常见的 Java 命令参数1. 设置内存大小2. 配置垃圾回收器3. 配置线程栈大小

python连接本地SQL server详细图文教程

《python连接本地SQLserver详细图文教程》在数据分析领域,经常需要从数据库中获取数据进行分析和处理,下面:本文主要介绍python连接本地SQLserver的相关资料,文中通过代码... 目录一.设置本地账号1.新建用户2.开启双重验证3,开启TCP/IP本地服务二js.python连接实例1.

浅谈配置MMCV环境,解决报错,版本不匹配问题

《浅谈配置MMCV环境,解决报错,版本不匹配问题》:本文主要介绍浅谈配置MMCV环境,解决报错,版本不匹配问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录配置MMCV环境,解决报错,版本不匹配错误示例正确示例总结配置MMCV环境,解决报错,版本不匹配在col

Python通过模块化开发优化代码的技巧分享

《Python通过模块化开发优化代码的技巧分享》模块化开发就是把代码拆成一个个“零件”,该封装封装,该拆分拆分,下面小编就来和大家简单聊聊python如何用模块化开发进行代码优化吧... 目录什么是模块化开发如何拆分代码改进版:拆分成模块让模块更强大:使用 __init__.py你一定会遇到的问题模www.

Spring Security基于数据库的ABAC属性权限模型实战开发教程

《SpringSecurity基于数据库的ABAC属性权限模型实战开发教程》:本文主要介绍SpringSecurity基于数据库的ABAC属性权限模型实战开发教程,本文给大家介绍的非常详细,对大... 目录1. 前言2. 权限决策依据RBACABAC综合对比3. 数据库表结构说明4. 实战开始5. MyBA