Docs

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 process

Listening Ports

Configure the ports for different types of traffic.

apisix:
  node_listen:
    - port: 9080 # Default HTTP port
    - port: 9443 # Default HTTPS port

Proxy 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_uri

Three different values are in play, and calling any one of them "the default" is what causes confusion:

WhereValue
The gateway binary's own config-default.yamlradixtree_uri
The Helm chart (gateway.httpRouter)radixtree_host_uri
The Docker Compose package, from 3.10.5radixtree_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}

Next Steps