From a6541ae4f27635e0a77536fdfad57578631f3798 Mon Sep 17 00:00:00 2001
From: Yuedong Wu <57584831+lunarwhite@users.noreply.github.com>
Date: Sun, 4 Sep 2022 14:16:14 +0800
Subject: [PATCH 1/4] docs: update limit-conn.md
---
docs/en/latest/plugins/limit-conn.md | 96 +++++++++++--------------
docs/zh/latest/plugins/limit-conn.md | 103 +++++++++++++--------------
2 files changed, 92 insertions(+), 107 deletions(-)
diff --git a/docs/en/latest/plugins/limit-conn.md b/docs/en/latest/plugins/limit-conn.md
index 6d40221ca02e..ca173abe34ec 100644
--- a/docs/en/latest/plugins/limit-conn.md
+++ b/docs/en/latest/plugins/limit-conn.md
@@ -2,10 +2,9 @@
title: limit-conn
keywords:
- APISIX
- - Plugin
+ - API Gateway
- Limit Connection
- - limit-con
-description: This document contains information about the Apache APISIX limit-con Plugin.
+description: This document contains information about the Apache APISIX limit-con Plugin, you can use it to limits the number of concurrent requests to your services.
---
-
## Example usage
The example above configures the Plugin to only allow one concurrent request. When more than one request is received, the Plugin will respond with a 503 status code:
-```bash
+```shell
curl -i http://127.0.0.1:9080/index.html?sleep=20 &
curl -i http://127.0.0.1:9080/index.html?sleep=20
```
-```bash
+```shell
503 Service Temporarily Unavailable
@@ -121,35 +120,15 @@ curl -i http://127.0.0.1:9080/index.html?sleep=20
```
-## Disable Plugin
-
-To disable the `limit-conn` Plugin, you can delete the corresponding JSON configuration from the Plugin configuration. APISIX will automatically reload and you do not have to restart for this to take effect.
-
-```bash
-curl http://127.0.0.1:9180/apisix/admin/routes/1 -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
-{
- "methods": ["GET"],
- "uri": "/index.html",
- "id": 1,
- "plugins": {
- },
- "upstream": {
- "type": "roundrobin",
- "nodes": {
- "127.0.0.1:1980": 1
- }
- }
-}'
-```
-
## Limit the number of concurrent WebSocket connections
Apache APISIX supports WebSocket proxy, we can use `limit-conn` plugin to limit the number of concurrent WebSocket connections.
1. Create a Route, enable the WebSocket proxy and the `limit-conn` plugin.
-````shell
-curl http://127.0.0.1:9180/apisix/admin/routes/1 -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
+```shell
+curl http://127.0.0.1:9180/apisix/admin/routes/1 \
+-H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
{
"uri": "/ws",
"enable_websocket": true,
@@ -170,13 +149,13 @@ curl http://127.0.0.1:9180/apisix/admin/routes/1 -H 'X-API-KEY: edd1c9f034335f13
}
}
}'
-````
+```
The above route enables the WebSocket proxy on `/ws`, and limits the number of concurrent WebSocket connections to 1. More than 1 concurrent WebSocket connection will return `503` to reject the request.
-2. Initiate a WebSocket request, and the connection is established successfully
+2. Initiate a WebSocket request, and the connection is established successfully.
-````shell
+```shell
curl --include \
--no-buffer \
--header "Connection: Upgrade" \
@@ -189,23 +168,13 @@ curl --include \
```shell
HTTP/1.1 101 Switching Protocols
-Connection: upgrade
-Upgrade: websocket
-Sec-WebSocket-Accept: HSmrc0sMlYUkAGmm5OPpG2HaGWk=
-Server: APISIX/2.15.0
-...
-````
+```
-3. Initiate the WebSocket request again in another terminal, the request will be rejected
+3. Initiate the WebSocket request again in another terminal, the request will be rejected.
-````shell
+```shell
HTTP/1.1 503 Service Temporarily Unavailable
-Date: Mon, 01 Aug 2022 03:49:17 GMT
-Content-Type: text/html; charset=utf-8
-Content-Length: 194
-Connection: keep-alive
-Server: APISIX/2.15.0
-
+···
503 Service Temporarily Unavailable
@@ -213,4 +182,25 @@ Server: APISIX/2.15.0
openresty
-````
+```
+
+## Disable Plugin
+
+To disable the `limit-conn` Plugin, you can delete the corresponding JSON configuration from the Plugin configuration. APISIX will automatically reload and you do not have to restart for this to take effect.
+
+```shell
+curl http://127.0.0.1:9180/apisix/admin/routes/1 -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
+{
+ "methods": ["GET"],
+ "uri": "/index.html",
+ "id": 1,
+ "plugins": {
+ },
+ "upstream": {
+ "type": "roundrobin",
+ "nodes": {
+ "127.0.0.1:1980": 1
+ }
+ }
+}'
+```
diff --git a/docs/zh/latest/plugins/limit-conn.md b/docs/zh/latest/plugins/limit-conn.md
index e274a609ac85..f890012f4d72 100644
--- a/docs/zh/latest/plugins/limit-conn.md
+++ b/docs/zh/latest/plugins/limit-conn.md
@@ -1,5 +1,10 @@
---
title: limit-conn
+keywords:
+ - APISIX
+ - API 网关
+ - Limit Connection
+description: 本文介绍了 Apache APISIX limit-conn 插件的相关操作,你可以使用此插件限制对你的服务的并发请求数。
---