本文主要是介绍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 本地开发环境部署的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!