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

相关文章

golang程序打包成脚本部署到Linux系统方式

《golang程序打包成脚本部署到Linux系统方式》Golang程序通过本地编译(设置GOOS为linux生成无后缀二进制文件),上传至Linux服务器后赋权执行,使用nohup命令实现后台运行,完... 目录本地编译golang程序上传Golang二进制文件到linux服务器总结本地编译Golang程序

如何在Ubuntu 24.04上部署Zabbix 7.0对服务器进行监控

《如何在Ubuntu24.04上部署Zabbix7.0对服务器进行监控》在Ubuntu24.04上部署Zabbix7.0监控阿里云ECS服务器,需配置MariaDB数据库、开放10050/1005... 目录软硬件信息部署步骤步骤 1:安装并配置mariadb步骤 2:安装Zabbix 7.0 Server

一文详解Git中分支本地和远程删除的方法

《一文详解Git中分支本地和远程删除的方法》在使用Git进行版本控制的过程中,我们会创建多个分支来进行不同功能的开发,这就容易涉及到如何正确地删除本地分支和远程分支,下面我们就来看看相关的实现方法吧... 目录技术背景实现步骤删除本地分支删除远程www.chinasem.cn分支同步删除信息到其他机器示例步骤

SQLite3 在嵌入式C环境中存储音频/视频文件的最优方案

《SQLite3在嵌入式C环境中存储音频/视频文件的最优方案》本文探讨了SQLite3在嵌入式C环境中存储音视频文件的优化方案,推荐采用文件路径存储结合元数据管理,兼顾效率与资源限制,小文件可使用B... 目录SQLite3 在嵌入式C环境中存储音频/视频文件的专业方案一、存储策略选择1. 直接存储 vs

SpringBoot开发中十大常见陷阱深度解析与避坑指南

《SpringBoot开发中十大常见陷阱深度解析与避坑指南》在SpringBoot的开发过程中,即使是经验丰富的开发者也难免会遇到各种棘手的问题,本文将针对SpringBoot开发中十大常见的“坑... 目录引言一、配置总出错?是不是同时用了.properties和.yml?二、换个位置配置就失效?搞清楚加

前端如何通过nginx访问本地端口

《前端如何通过nginx访问本地端口》:本文主要介绍前端如何通过nginx访问本地端口的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、nginx安装1、下载(1)下载地址(2)系统选择(3)版本选择2、安装部署(1)解压(2)配置文件修改(3)启动(4)

Python中对FFmpeg封装开发库FFmpy详解

《Python中对FFmpeg封装开发库FFmpy详解》:本文主要介绍Python中对FFmpeg封装开发库FFmpy,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录一、FFmpy简介与安装1.1 FFmpy概述1.2 安装方法二、FFmpy核心类与方法2.1 FF

基于Python开发Windows屏幕控制工具

《基于Python开发Windows屏幕控制工具》在数字化办公时代,屏幕管理已成为提升工作效率和保护眼睛健康的重要环节,本文将分享一个基于Python和PySide6开发的Windows屏幕控制工具,... 目录概述功能亮点界面展示实现步骤详解1. 环境准备2. 亮度控制模块3. 息屏功能实现4. 息屏时间

python常见环境管理工具超全解析

《python常见环境管理工具超全解析》在Python开发中,管理多个项目及其依赖项通常是一个挑战,下面:本文主要介绍python常见环境管理工具的相关资料,文中通过代码介绍的非常详细,需要的朋友... 目录1. conda2. pip3. uvuv 工具自动创建和管理环境的特点4. setup.py5.

Python实例题之pygame开发打飞机游戏实例代码

《Python实例题之pygame开发打飞机游戏实例代码》对于python的学习者,能够写出一个飞机大战的程序代码,是不是感觉到非常的开心,:本文主要介绍Python实例题之pygame开发打飞机... 目录题目pygame-aircraft-game使用 Pygame 开发的打飞机游戏脚本代码解释初始化部