Skip to content

Commit 09b89d4

Browse files
committed
feat(seo): optimize plugin titles and expand Getting Started guide
Plugin title optimization (85 files): - Changed frontmatter titles from code identifiers to human-readable names - Format: "Human-Readable Name (code-identifier)" - Examples: limit-req → Rate Limiting (limit-req), openid-connect → OpenID Connect (openid-connect), grpc-transcode → gRPC Transcoding (grpc-transcode) - Only title field changed, no other content modified - Improves search visibility for long-tail queries like "API gateway rate limiting plugin" Getting Started expansion: - Expanded from ~300 words to ~800 words - Added: alternative installation methods table (Docker Compose, Helm, RPM, source), first route configuration example, plugin usage example (limit-count), dashboard access, troubleshooting section, improved next steps - Title changed from "Get APISIX" to "Getting Started with Apache APISIX" - Added comprehensive description meta tag
1 parent 6427788 commit 09b89d4

86 files changed

Lines changed: 235 additions & 120 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 150 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,73 +1,188 @@
11
---
2-
title: Get APISIX
3-
description: This tutorial uses a script to quickly install Apache APISIX in your local environment and verify it through the Admin API.
2+
title: Getting Started with Apache APISIX
3+
description: Install and run Apache APISIX in minutes. This guide covers Docker-based setup, verification, basic route configuration, and next steps for production deployment.
44
---
55

6-
<head>
7-
<link rel="canonical" href="https://docs.api7.ai/apisix/getting-started/" />
8-
</head>
6+
Apache APISIX is an open-source, high-performance API gateway and AI gateway built for cloud-native architectures. It provides dynamic routing, load balancing, authentication, rate limiting, observability, and 100+ plugins for managing API traffic at scale.
97

10-
> The Getting Started tutorials are contributed by [API7.ai](https://api7.ai/).
8+
This guide walks you through installing APISIX locally, verifying the installation, and configuring your first API route.
119

12-
Developed and donated by API7.ai, Apache APISIX is an open source, dynamic, scalable, and high-performance cloud native API gateway for all your APIs and microservices. It is a [top-level project](https://projects.apache.org/project.html?apisix) of the Apache Software Foundation.
10+
## Prerequisites
1311

14-
You can use APISIX API Gateway as a traffic entrance to process all business data. It offers features including dynamic routing, dynamic upstream, dynamic certificates, A/B testing, canary release, blue-green deployment, limit rate, defense against malicious attacks, metrics, monitoring alarms, service observability, service governance, and more.
12+
Before you begin, ensure you have the following installed:
1513

16-
This tutorial uses a script to quickly install [Apache APISIX](https://api7.ai/apisix) in your local environment and verifies the installation through the Admin API.
14+
- [Docker](https://docs.docker.com/get-docker/) (version 20.10 or later) — used to run APISIX and etcd containers
15+
- [curl](https://curl.se/) — used to send requests to APISIX for validation
1716

18-
## Prerequisite(s)
17+
APISIX uses [etcd](https://etcd.io/) as its configuration store. The quickstart script handles etcd setup automatically.
1918

20-
The quickstart script relies on several components:
19+
## Install APISIX
2120

22-
* [Docker](https://docs.docker.com/get-docker/) is used to install the containerized **etcd** and **APISIX**.
23-
* [curl](https://curl.se/) is used to send requests to APISIX for validation.
24-
25-
## Get APISIX
26-
27-
:::caution
28-
29-
To provide a better experience in this tutorial, the authorization of Admin API is switched off by default. Please turn on the authorization of Admin API in the production environment.
30-
31-
:::
32-
APISIX can be easily installed and started with the quickstart script:
21+
APISIX can be installed with a single command using the quickstart script:
3322

3423
```shell
3524
curl -sL https://run.api7.ai/apisix/quickstart | sh
3625
```
3726

38-
The script should start two Docker containers, _apisix-quickstart_ and _etcd_. APISIX uses etcd to save and synchronize configurations. Both the etcd and the APISIX use [**host**](https://docs.docker.com/network/host/) Docker network mode. That is, the APISIX can be accessed from local.
27+
This script starts two Docker containers:
28+
29+
- **apisix-quickstart** — the APISIX gateway, listening on ports 9080 (HTTP) and 9443 (HTTPS)
30+
- **etcd** — the configuration store
31+
32+
Both containers use Docker [host network mode](https://docs.docker.com/network/host/), so APISIX is accessible directly from localhost.
3933

4034
You will see the following message once APISIX is ready:
4135

4236
```text
4337
✔ APISIX is ready!
4438
```
4539

46-
## Validate
40+
:::caution
4741

48-
Once APISIX is running, you can use curl to interact with it. Send a simple HTTP request to validate if APISIX is working properly:
42+
The quickstart script disables Admin API authorization by default for ease of use. Always enable Admin API authentication in production environments. See the [Admin API documentation](../admin-api.md) for details.
43+
44+
:::
45+
46+
### Alternative Installation Methods
47+
48+
| Method | Use Case | Documentation |
49+
|--------|----------|---------------|
50+
| Docker Compose | Production-like local setup with custom configuration | [apisix-docker](https://github.com/apache/apisix-docker) |
51+
| Helm Chart | Kubernetes deployment | [apisix-helm-chart](https://github.com/apache/apisix-helm-chart) |
52+
| RPM Package | CentOS/RHEL bare-metal installation | [Installation Guide](../installation-guide.md) |
53+
| Source Build | Development and custom builds | [How to Build](../building-apisix.md) |
54+
55+
## Verify the Installation
56+
57+
Send a request to confirm APISIX is running:
4958

5059
```shell
5160
curl "http://127.0.0.1:9080" --head | grep Server
5261
```
5362

54-
If everything is ok, you will get the following response:
63+
Expected response:
5564

5665
```text
57-
Server: APISIX/Version
66+
Server: APISIX/3.16.0
67+
```
68+
69+
The version number reflects the APISIX release you installed.
70+
71+
You can also check the Admin API:
72+
73+
```shell
74+
curl "http://127.0.0.1:9180/apisix/admin/routes" | head -c 200
75+
```
76+
77+
This should return a JSON response confirming the Admin API is accessible.
78+
79+
## Configure Your First Route
80+
81+
A **route** tells APISIX how to match client requests and forward them to upstream services. Create a route that proxies requests to the public httpbin.org service:
82+
83+
```shell
84+
curl -i "http://127.0.0.1:9180/apisix/admin/routes/1" -X PUT -d '
85+
{
86+
"uri": "/get",
87+
"upstream": {
88+
"type": "roundrobin",
89+
"nodes": {
90+
"httpbin.org:80": 1
91+
}
92+
}
93+
}'
94+
```
95+
96+
Now test the route:
97+
98+
```shell
99+
curl "http://127.0.0.1:9080/get"
100+
```
101+
102+
You should receive a JSON response from httpbin.org, confirming that APISIX is proxying requests correctly.
103+
104+
## Add a Plugin
105+
106+
APISIX provides 100+ built-in [plugins](/plugins/) for authentication, traffic control, observability, and more. Add rate limiting to the route you just created:
107+
108+
```shell
109+
curl -i "http://127.0.0.1:9180/apisix/admin/routes/1" -X PATCH -d '
110+
{
111+
"plugins": {
112+
"limit-count": {
113+
"count": 5,
114+
"time_window": 60,
115+
"rejected_code": 429,
116+
"key_type": "var",
117+
"key": "remote_addr"
118+
}
119+
}
120+
}'
58121
```
59122

60-
`Version` refers to the version of APISIX that you have installed. For example, `APISIX/3.3.0`.
123+
This limits each client IP to 5 requests per minute. Send more than 5 requests within 60 seconds to see the rate limit in action:
124+
125+
```shell
126+
for i in $(seq 1 7); do
127+
echo "Request $i:"
128+
curl -s -o /dev/null -w "HTTP %{http_code}\n" "http://127.0.0.1:9080/get"
129+
done
130+
```
131+
132+
Requests 1-5 should return `HTTP 200`, while requests 6-7 should return `HTTP 429`.
133+
134+
## Access the Dashboard
135+
136+
APISIX includes a built-in Dashboard UI for visual route and plugin management, accessible at:
61137

62-
You now have APISIX installed and running successfully!​
138+
```
139+
http://127.0.0.1:9180/ui
140+
```
141+
142+
For more details, see the [Apache APISIX Dashboard documentation](../dashboard.md).
143+
144+
## Clean Up
145+
146+
To stop and remove the quickstart containers:
147+
148+
```shell
149+
docker rm -f apisix-quickstart etcd
150+
```
63151

64-
APISIX includes a built-in Dashboard UI, accessible at http://127.0.0.1:9180/ui. For more guidance, please read [Apache APISIX Dashboard](../dashboard.md).
152+
## Troubleshooting
153+
154+
**APISIX container fails to start**
155+
156+
Check if ports 9080, 9180, or 9443 are already in use:
157+
158+
```shell
159+
lsof -i :9080 -i :9180 -i :9443
160+
```
161+
162+
**etcd connection errors**
163+
164+
Ensure the etcd container is running:
165+
166+
```shell
167+
docker ps | grep etcd
168+
```
169+
170+
If etcd is not running, restart both containers by re-running the quickstart script.
171+
172+
**Admin API returns 401 Unauthorized**
173+
174+
If you have enabled Admin API authentication, include the API key in your requests:
175+
176+
```shell
177+
curl -H "X-API-KEY: your-admin-key" "http://127.0.0.1:9180/apisix/admin/routes"
178+
```
65179

66180
## Next Steps
67181

68-
The following tutorial is based on the working APISIX, please keep everything running and move on to the next step.
182+
Now that APISIX is running, explore these tutorials to learn core features:
69183

70-
* [Configure Routes](configure-routes.md)
71-
* [Load Balancing](load-balancing.md)
72-
* [Rate Limiting](rate-limiting.md)
73-
* [Key Authentication](key-authentication.md)
184+
- [Configure Routes](configure-routes.md) — define routing rules and upstream services
185+
- [Load Balancing](load-balancing.md) — distribute traffic across multiple backend nodes
186+
- [Rate Limiting](rate-limiting.md) — protect services from excessive traffic
187+
- [Key Authentication](key-authentication.md) — secure APIs with API key authentication
188+
- [Plugin Hub](/plugins/) — browse all available plugins

docs/en/latest/plugins/api-breaker.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
title: api-breaker
2+
title: API Circuit Breaker (api-breaker)
33
keywords:
44
- Apache APISIX
55
- API Gateway

docs/en/latest/plugins/attach-consumer-label.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
title: attach-consumer-label
2+
title: Attach Consumer Label (attach-consumer-label)
33
keywords:
44
- Apache APISIX
55
- API Gateway

docs/en/latest/plugins/authz-casbin.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
title: authz-casbin
2+
title: Casbin Authorization (authz-casbin)
33
keywords:
44
- Apache APISIX
55
- API Gateway

docs/en/latest/plugins/authz-casdoor.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
title: authz-casdoor
2+
title: Casdoor Authorization (authz-casdoor)
33
keywords:
44
- Apache APISIX
55
- API Gateway

docs/en/latest/plugins/authz-keycloak.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
title: authz-keycloak
2+
title: Keycloak Authorization (authz-keycloak)
33
keywords:
44
- Apache APISIX
55
- API Gateway

docs/en/latest/plugins/aws-lambda.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
title: aws-lambda
2+
title: AWS Lambda (aws-lambda)
33
keywords:
44
- Apache APISIX
55
- Plugin

docs/en/latest/plugins/azure-functions.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
title: azure-functions
2+
title: Azure Functions (azure-functions)
33
keywords:
44
- Apache APISIX
55
- API Gateway

docs/en/latest/plugins/batch-requests.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
title: batch-requests
2+
title: Batch Requests (batch-requests)
33
keywords:
44
- Apache APISIX
55
- API Gateway

docs/en/latest/plugins/body-transformer.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
title: body-transformer
2+
title: Body Transformer (body-transformer)
33
keywords:
44
- Apache APISIX
55
- API Gateway

0 commit comments

Comments
 (0)