You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@apisix.apache.org by GitBox <gi...@apache.org> on 2022/08/01 06:13:04 UTC

[GitHub] [apisix] SylviaBABY commented on a diff in pull request #7581: docs: add websocket rate limit example

SylviaBABY commented on code in PR #7581:
URL: https://github.com/apache/apisix/pull/7581#discussion_r934165093


##########
docs/en/latest/plugins/limit-conn.md:
##########
@@ -141,3 +141,79 @@ curl http://127.0.0.1:9080/apisix/admin/routes/1 -H 'X-API-KEY: edd1c9f034335f13
     }
 }'
 ```
+
+## Limit the rate of WebSocket connections
+
+Apache APISIX supports WebSocket proxy, we can use limit-conn plugin to limit the number of concurrent WebSocket connections.

Review Comment:
   ```suggestion
   Apache APISIX supports WebSocket proxy, we can use `limit-conn` plugin to limit the number of concurrent WebSocket connections.
   ```



##########
docs/en/latest/plugins/limit-conn.md:
##########
@@ -141,3 +141,79 @@ curl http://127.0.0.1:9080/apisix/admin/routes/1 -H 'X-API-KEY: edd1c9f034335f13
     }
 }'
 ```
+
+## Limit the rate of WebSocket connections
+
+Apache APISIX supports WebSocket proxy, we can use limit-conn plugin to limit the number of concurrent WebSocket connections.
+
+1. Start WebSocket Server
+
+````
+docker run -p 1980:8080 --name websocket-demo casperklein/websocket-demo
+````
+
+2. Register the route, enable the WebSocket proxy on the route and enable the limit-conn plugin
+
+````
+curl http://127.0.0.1:9080/apisix/admin/routes/1 -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
+{
+    "uri": "/ws",
+    "enable_websocket":true,
+    "plugins": {
+        "limit-conn": {
+            "conn": 1,
+            "burst": 0,
+            "default_conn_delay": 0.1,
+            "rejected_code": 503,
+            "key_type": "var",
+            "key": "remote_addr"
+        }
+    },
+    "upstream": {
+        "type": "roundrobin",
+        "nodes": {
+            "127.0.0.1:1980": 1
+        }
+    }
+}'
+````
+
+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.
+
+3. Initiate a WebSocket request, and the link is established successfully
+
+````

Review Comment:
   ```suggestion
   ````shell
   ```



##########
docs/zh/latest/plugins/limit-conn.md:
##########
@@ -136,3 +136,79 @@ curl http://127.0.0.1:9080/apisix/admin/routes/1 -H 'X-API-KEY: edd1c9f034335f13
 ```
 
 现在就已经移除了 limit-conn 插件了。其他插件的开启和移除也是同样的方法。
+
+## 对 WebSocket 链接限速
+
+Apache APISIX 支持 WebSocket 代理,我们可以使用 limit-conn 插件限制 WebSocket 链接的并发数。

Review Comment:
   ```suggestion
   Apache APISIX 支持 WebSocket 代理,我们可以使用 `limit-conn` 插件限制 WebSocket 链接的并发数。
   ```



##########
docs/zh/latest/plugins/limit-conn.md:
##########
@@ -136,3 +136,79 @@ curl http://127.0.0.1:9080/apisix/admin/routes/1 -H 'X-API-KEY: edd1c9f034335f13
 ```
 
 现在就已经移除了 limit-conn 插件了。其他插件的开启和移除也是同样的方法。
+
+## 对 WebSocket 链接限速
+
+Apache APISIX 支持 WebSocket 代理,我们可以使用 limit-conn 插件限制 WebSocket 链接的并发数。
+
+1、启动 WebSocket Server
+
+```
+docker run -p 1980:8080 --name websocket-demo casperklein/websocket-demo
+```
+
+2、注册路由,在路由上启用 WebSocket 代理并开启 limit-conn 插件
+
+```

Review Comment:
   ```suggestion
   ```shell
   ```



##########
docs/en/latest/plugins/limit-conn.md:
##########
@@ -141,3 +141,79 @@ curl http://127.0.0.1:9080/apisix/admin/routes/1 -H 'X-API-KEY: edd1c9f034335f13
     }
 }'
 ```
+
+## Limit the rate of WebSocket connections
+
+Apache APISIX supports WebSocket proxy, we can use limit-conn plugin to limit the number of concurrent WebSocket connections.
+
+1. Start WebSocket Server
+
+````

Review Comment:
   ```suggestion
   ````shell
   ```



##########
docs/zh/latest/plugins/limit-conn.md:
##########
@@ -39,7 +39,7 @@ title: limit-conn
 | rejected_msg       | string | 否                                |            | 非空                                          | 当请求超过 `conn` + `burst` 这个阈值时,返回的响应体。                                                                                                                                                                     |
 | allow_degradation              | boolean  | 否                                | false       |                                                                     | 当插件功能临时不可用时是否允许请求继续。当值设置为 true 时则自动允许请求继续,默认值是 false。                                                                                                                                                    |
 
-### 如何启用
+## 开启插件
 
 下面是一个示例,在指定的 route 上开启了 limit-conn 插件,并设置 `key_type` 为 `var`:

Review Comment:
   ```suggestion
   下面是一个示例,在指定的路由上开启了 `limit-conn` 插件,并设置 `key_type` 为 `var`:
   ```



##########
docs/en/latest/plugins/limit-conn.md:
##########
@@ -141,3 +141,79 @@ curl http://127.0.0.1:9080/apisix/admin/routes/1 -H 'X-API-KEY: edd1c9f034335f13
     }
 }'
 ```
+
+## Limit the rate of WebSocket connections
+
+Apache APISIX supports WebSocket proxy, we can use limit-conn plugin to limit the number of concurrent WebSocket connections.
+
+1. Start WebSocket Server
+
+````
+docker run -p 1980:8080 --name websocket-demo casperklein/websocket-demo
+````
+
+2. Register the route, enable the WebSocket proxy on the route and enable the limit-conn plugin
+
+````

Review Comment:
   ```suggestion
   ````shell
   ```



##########
docs/zh/latest/plugins/limit-conn.md:
##########
@@ -136,3 +136,79 @@ curl http://127.0.0.1:9080/apisix/admin/routes/1 -H 'X-API-KEY: edd1c9f034335f13
 ```
 
 现在就已经移除了 limit-conn 插件了。其他插件的开启和移除也是同样的方法。
+
+## 对 WebSocket 链接限速
+
+Apache APISIX 支持 WebSocket 代理,我们可以使用 limit-conn 插件限制 WebSocket 链接的并发数。
+
+1、启动 WebSocket Server
+
+```

Review Comment:
   ```suggestion
   ```shell
   ```



##########
docs/zh/latest/plugins/limit-conn.md:
##########
@@ -136,3 +136,79 @@ curl http://127.0.0.1:9080/apisix/admin/routes/1 -H 'X-API-KEY: edd1c9f034335f13
 ```
 
 现在就已经移除了 limit-conn 插件了。其他插件的开启和移除也是同样的方法。
+
+## 对 WebSocket 链接限速
+
+Apache APISIX 支持 WebSocket 代理,我们可以使用 limit-conn 插件限制 WebSocket 链接的并发数。
+
+1、启动 WebSocket Server
+
+```
+docker run -p 1980:8080 --name websocket-demo casperklein/websocket-demo
+```
+
+2、注册路由,在路由上启用 WebSocket 代理并开启 limit-conn 插件
+
+```
+curl http://127.0.0.1:9080/apisix/admin/routes/1 -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
+{
+    "uri": "/ws",
+    "enable_websocket":true,
+    "plugins": {
+        "limit-conn": {
+            "conn": 1,
+            "burst": 0,
+            "default_conn_delay": 0.1,
+            "rejected_code": 503,
+            "key_type": "var",
+            "key": "remote_addr"
+        }
+    },
+    "upstream": {
+        "type": "roundrobin",
+        "nodes": {
+            "127.0.0.1:1980": 1
+        }
+    }
+}'
+```
+
+上述路由在 `/ws` 上开启了 WebSocket 代理,并限制了 WebSocket 链接并发数 1,超过 1 个并发的 WebSocket 链接将返回 503 拒绝请求。
+
+3、发起 WebSocket 请求,链接建立成功
+
+```

Review Comment:
   ```suggestion
   ```shell
   ```



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@apisix.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org