Configuration Reference for API7 Gateway Data Plane
Detailed configuration reference for API7 Gateway data plane, based on the config-default.yaml structure.
The API7 Gateway data plane (DP) handles all incoming traffic and applies policies defined by the control plane. This page provides a reference for the data plane configuration.
Overview
The data plane configuration is typically managed via a config.yaml file, which overrides the default settings in config-default.yaml.
Core Configuration
Configure the core worker processes and file limits.
apisix:
worker_processes: auto # Automatically set to number of CPU cores
worker_rlimit_nofile: 1024000 # Max number of open files for each worker processListening Ports
Configure the ports for different types of traffic.
apisix:
node_listen:
- port: 9080 # Default HTTP port
- port: 9443 # Default HTTPS portProxy Cache Configuration
Enable and configure caching to improve performance and reduce upstream load.
apisix:
proxy_cache:
cache_ttl: 10s
zones:
- name: disk_cache_one
memory_size: 50m
disk_size: 1g
disk_path: "/tmp/disk_cache_one"
cache_levels: "1:2"Router Mode
Specify the router mode for matching incoming requests to routes.
apisix:
router:
http: radixtree_host_uriThree different values are in play, and calling any one of them "the default" is what causes confusion:
| Where | Value |
|---|---|
The gateway binary's own config-default.yaml | radixtree_uri |
The Helm chart (gateway.httpRouter) | radixtree_host_uri |
| The Docker Compose package, from 3.10.5 | radixtree_host_uri |
So both supported deployment methods run radixtree_host_uri, and you only see radixtree_uri
if you bypass them or are on a Compose package older than 3.10.5.
The two engines resolve overlapping routes differently: radixtree_host_uri consults the per-host
routers first and falls back to host-less routes only when none matched, while radixtree_uri
keeps every route in one tree ordered by path specificity and priority. Configurations that use
plain host-and-path matching behave identically under both.
TLS Settings
Configure TLS behavior for incoming HTTPS requests.
apisix:
ssl:
ssl_protocols: "TLSv1.2 TLSv1.3"
ssl_ciphers: "ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256"Status API Endpoint
Expose the liveness and readiness endpoints. The block ships commented out, and uncommenting it
is what enables the listener — there is no enabled key:
apisix:
status:
ip: 127.0.0.1
port: 7085/status returns 200 once the gateway has started. /status/ready returns 503 while the
gateway can reach none of its configured DP Manager endpoints, which is what makes it the right
probe for deciding whether a node should receive traffic. Bound to 127.0.0.1 by default, so set
ip to an address your probe can reach. See Configure Readiness and Liveness Probes.
Custom Plugin Paths
Load custom-developed plugins into API7 Gateway.
apisix:
extra_lua_path: "/usr/local/apisix/plugins/?.lua"Environment Variables
Use environment variables to dynamically configure data plane nodes.
# In config.yaml, use ${VAR_NAME} syntax
apisix:
node_listen:
- port: ${GATEWAY_PORT}