diff --git a/README.md b/README.md index 6451348..f68e702 100644 --- a/README.md +++ b/README.md @@ -1904,8 +1904,8 @@ The proxy's http(s)/socks5/sps proxy function supports user-to-agent access via ### What can I do through the API? -- User dimension, which controls the single connection rate and controls the maximum number of connections. -- IP dimension, which controls the single connection rate and controls the maximum number of connections. +- User dimension, which controls the single connection rate and controls the maximum number of connections, max connections count per seconds (QPS). +- IP dimension, which controls the single connection rate and controls the maximum number of connections, max connections count per seconds (QPS). - Dynamic upstream, can dynamically obtain its upstream from the API according to the user or client IP, and support http(s)/socks5/ss upstream. - Authenticate every connection, regardless of whether client authentication is required. - Cache authentication results, time can be set to reduce API pressure. @@ -1962,19 +1962,23 @@ if($ok){ header("ipconns:2000"); header("userrate:3000"); header("iprate:8000"); - header("outgoing:http://127.0.0.1:3500?parent-type=tcp"); + header("userqps:5"); + header("ipqps:2"); + header("upstream:http://127.0.0.1:3500?parent-type=tcp"); header("outgoing:1.1.1.1"); header("HTTP/1.1 204 No Content"); } ``` -#### Explanation -userconns: The maximum number of connections for the user, not limited to 0 or not set this header. -ipcons: The maximum number of connections for the user IP, not limited to 0 or not set this header. -userrate: User's single TCP connection rate limit, in bytes/second, is not limited to 0 or does not set this header. -iprate: The single TCP connection rate limit of the user IP, in bytes/second, not limited to 0 or not set this header. -upstream: The upstream used, not empty, or not set this header. -outgoing: The outgoing ip,this option only working which upstream is empty. And the IP must belong to the machine running proxy。 +#### HTTP HEADER Explanation +`userconns`: The maximum number of connections for the user, not limited to 0 or not set this header. +`ipcons`: The maximum number of connections for the user IP, not limited to 0 or not set this header. +`userrate`: User's single TCP connection rate limit, in bytes/second, is not limited to 0 or does not set this header. +`iprate`: The single TCP connection rate limit of the client IP, in bytes/second, not limited to 0 or not set this header. +`userqps`: The maximum number of connections per second (QPS) for the user, not limited to 0 or not set this header. +`ipqps`: The maximum number of connections per second (QPS) for the client IP, not limited to 0 or not set this header. +`upstream`: The upstream used, not empty, or not set this header. +`outgoing`: The outgoing ip,this option only working which upstream is empty. And the IP must belong to the machine running proxy。 #### Tips 1. By default, `--auth-url` is required to provide the user name and password. If you do not need the client to provide the username and password, and authenticate, you can add `--auth-nouser`. The visit will still access the authentication address `--auth-url` for authentication. Only the $user authentication username and the $pass authentication password received in the php interface are empty when client didn't send username and password. diff --git a/README_ZH.md b/README_ZH.md index f4a0a89..863f91c 100644 --- a/README_ZH.md +++ b/README_ZH.md @@ -2060,8 +2060,8 @@ proxy的http(s)/socks5/sps代理功能,支持通过API控制用户对代理对 ### 通过API可以干什么? -- 用户维度,控制单个连接速率,控制最大连接数。 -- IP维度,控制单个连接速率,控制最大连接数。 +- 用户维度,控制单个连接速率,控制最大连接数,控制连接的QPS。 +- IP维度,控制单个连接速率,控制最大连接数,控制连接的QPS。 - 动态上级,可以根据用户或者客户端IP,动态的从API获取其上级,支持http(s)/socks5/ss上级。 - 认证每一个连接,无论是否要求客户端认证。 - 缓存认证结果,时间可以设置,减轻API压力。 @@ -2119,20 +2119,24 @@ if($ok){ header("ipconns:2000"); header("userrate:3000"); header("iprate:8000"); + header("userqps:5"); + header("ipqps:2"); header("upstream:http://127.0.0.1:3500?parent-type=tcp"); header("outgoing:1.1.1.1"); header("HTTP/1.1 204 No Content"); } ``` -#### 解释 +#### HTTP HEADER 头部字段解释 -userconns:用户的最大连接数,不限制为0或者不设置这个头部。 -ipconns:用户IP的最大连接数,不限制为0或者不设置这个头部。 -userrate:用户的单个TCP连接速率限制,单位:字节/秒,不限制为0或者不设置这个头部。 -iprate:用户IP的单个TCP连接速率限制,单位:字节/秒,不限制为0或者不设置这个头部。 -upstream:使用的上级,没有为空,或者不设置这个头部。 -outgoing: 使用的出口IP,这个设置,只有在upstream为空的的时候才有效,这里设置的IP必须是proxy所在机器具有的IP。 +`userconns`:用户的最大连接数,不限制为0或者不设置这个头部。 +`ipconns`:IP的最大连接数,不限制为0或者不设置这个头部。 +`userrate`:用户的单个TCP连接速率限制,单位:字节/秒,不限制为0或者不设置这个头部。 +`iprate`:IP的单个TCP连接速率限制,单位:字节/秒,不限制为0或者不设置这个头部。 +`userqps`:用户每秒可以建立的最大连接数,不限制为0或者不设置这个头部。 +`ipqps`:IP每秒可以建立的最大连接数,不限制为0或者不设置这个头部。 +`upstream`:使用的上级,没有为空,或者不设置这个头部。 +`outgoing`: 使用的出口IP,这个设置,只有在upstream为空的的时候才有效,这里设置的IP必须是proxy所在机器具有的IP。 #### 提示 diff --git a/docs/manual/manual.md b/docs/manual/manual.md index 9ab1a2f..ca06377 100644 --- a/docs/manual/manual.md +++ b/docs/manual/manual.md @@ -1692,8 +1692,8 @@ The proxy's http(s)/socks5/sps proxy function supports user-to-agent access via ### What can I do through the API? -- User dimension, which controls the single connection rate and controls the maximum number of connections. -- IP dimension, which controls the single connection rate and controls the maximum number of connections. +- User dimension, which controls the single connection rate and controls the maximum number of connections, max connections count per seconds (QPS). +- IP dimension, which controls the single connection rate and controls the maximum number of connections, max connections count per seconds (QPS). - Dynamic upstream, can dynamically obtain its upstream from the API according to the user or client IP, and support http(s)/socks5/ss upstream. - Authenticate every connection, regardless of whether client authentication is required. - Cache authentication results, time can be set to reduce API pressure. @@ -1750,19 +1750,23 @@ if($ok){ header("ipconns:2000"); header("userrate:3000"); header("iprate:8000"); - header("outgoing:http://127.0.0.1:3500?parent-type=tcp"); + header("userqps:5"); + header("ipqps:2"); + header("upstream:http://127.0.0.1:3500?parent-type=tcp"); header("outgoing:1.1.1.1"); header("HTTP/1.1 204 No Content"); } ``` -#### Explanation -userconns: The maximum number of connections for the user, not limited to 0 or not set this header. -ipcons: The maximum number of connections for the user IP, not limited to 0 or not set this header. -userrate: User's single TCP connection rate limit, in bytes/second, is not limited to 0 or does not set this header. -iprate: The single TCP connection rate limit of the user IP, in bytes/second, not limited to 0 or not set this header. -upstream: The upstream used, not empty, or not set this header. -outgoing: The outgoing ip,this option only working which upstream is empty. And the IP must belong to the machine running proxy。 +#### HTTP HEADER Explanation +`userconns`: The maximum number of connections for the user, not limited to 0 or not set this header. +`ipcons`: The maximum number of connections for the user IP, not limited to 0 or not set this header. +`userrate`: User's single TCP connection rate limit, in bytes/second, is not limited to 0 or does not set this header. +`iprate`: The single TCP connection rate limit of the client IP, in bytes/second, not limited to 0 or not set this header. +`userqps`: The maximum number of connections per second (QPS) for the user, not limited to 0 or not set this header. +`ipqps`: The maximum number of connections per second (QPS) for the client IP, not limited to 0 or not set this header. +`upstream`: The upstream used, not empty, or not set this header. +`outgoing`: The outgoing ip,this option only working which upstream is empty. And the IP must belong to the machine running proxy。 #### Tips 1. By default, `--auth-url` is required to provide the user name and password. If you do not need the client to provide the username and password, and authenticate, you can add `--auth-nouser`. The visit will still access the authentication address `--auth-url` for authentication. Only the $user authentication username and the $pass authentication password received in the php interface are empty when client didn't send username and password. diff --git a/docs/manual/zh/manual.md b/docs/manual/zh/manual.md index 339f642..08cc3c9 100644 --- a/docs/manual/zh/manual.md +++ b/docs/manual/zh/manual.md @@ -1834,8 +1834,8 @@ proxy的http(s)/socks5/sps代理功能,支持通过API控制用户对代理对 ### 通过API可以干什么? -- 用户维度,控制单个连接速率,控制最大连接数。 -- IP维度,控制单个连接速率,控制最大连接数。 +- 用户维度,控制单个连接速率,控制最大连接数,控制连接的QPS。 +- IP维度,控制单个连接速率,控制最大连接数,控制连接的QPS。 - 动态上级,可以根据用户或者客户端IP,动态的从API获取其上级,支持http(s)/socks5/ss上级。 - 认证每一个连接,无论是否要求客户端认证。 - 缓存认证结果,时间可以设置,减轻API压力。 @@ -1893,20 +1893,24 @@ if($ok){ header("ipconns:2000"); header("userrate:3000"); header("iprate:8000"); + header("userqps:5"); + header("ipqps:2"); header("upstream:http://127.0.0.1:3500?parent-type=tcp"); header("outgoing:1.1.1.1"); header("HTTP/1.1 204 No Content"); } ``` -#### 解释 +#### HTTP HEADER 头部字段解释 -userconns:用户的最大连接数,不限制为0或者不设置这个头部。 -ipconns:用户IP的最大连接数,不限制为0或者不设置这个头部。 -userrate:用户的单个TCP连接速率限制,单位:字节/秒,不限制为0或者不设置这个头部。 -iprate:用户IP的单个TCP连接速率限制,单位:字节/秒,不限制为0或者不设置这个头部。 -upstream:使用的上级,没有为空,或者不设置这个头部。 -outgoing: 使用的出口IP,这个设置,只有在upstream为空的的时候才有效,这里设置的IP必须是proxy所在机器具有的IP。 +`userconns`:用户的最大连接数,不限制为0或者不设置这个头部。 +`ipconns`:IP的最大连接数,不限制为0或者不设置这个头部。 +`userrate`:用户的单个TCP连接速率限制,单位:字节/秒,不限制为0或者不设置这个头部。 +`iprate`:IP的单个TCP连接速率限制,单位:字节/秒,不限制为0或者不设置这个头部。 +`userqps`:用户每秒可以建立的最大连接数,不限制为0或者不设置这个头部。 +`ipqps`:IP每秒可以建立的最大连接数,不限制为0或者不设置这个头部。 +`upstream`:使用的上级,没有为空,或者不设置这个头部。 +`outgoing`: 使用的出口IP,这个设置,只有在upstream为空的的时候才有效,这里设置的IP必须是proxy所在机器具有的IP。 #### 提示 diff --git a/docs/sitemap.xml b/docs/sitemap.xml index 9facd59..5ae94c9 100644 --- a/docs/sitemap.xml +++ b/docs/sitemap.xml @@ -18,31 +18,31 @@ - https://snail007.host900.com/goproxy/tags/cdn/ + https://snail007.host900.com/goproxy/categories/ 2019-07-05T08:20:48+08:00 0 - https://snail007.host900.com/goproxy/categories/ + https://snail007.host900.com/goproxy/ 2019-07-05T08:20:48+08:00 0 - https://snail007.host900.com/goproxy/ + https://snail007.host900.com/goproxy/posts/ 2019-07-05T08:20:48+08:00 0 - https://snail007.host900.com/goproxy/posts/ + https://snail007.host900.com/goproxy/tags/ 2019-07-05T08:20:48+08:00 0 - https://snail007.host900.com/goproxy/tags/ + https://snail007.host900.com/goproxy/tags/cdn/ 2019-07-05T08:20:48+08:00 0 diff --git a/docs/tags/cdn/index.html b/docs/tags/cdn/index.html index a7beca7..e9d7646 100644 --- a/docs/tags/cdn/index.html +++ b/docs/tags/cdn/index.html @@ -14,7 +14,7 @@ - CDN - GOPROXY IN ACTION + cdn - GOPROXY IN ACTION @@ -77,7 +77,7 @@ diff --git a/docs/tags/cdn/index.xml b/docs/tags/cdn/index.xml index cb5d91a..ab1a975 100644 --- a/docs/tags/cdn/index.xml +++ b/docs/tags/cdn/index.xml @@ -1,9 +1,9 @@ - CDN on GOPROXY IN ACTION + cdn on GOPROXY IN ACTION https://snail007.host900.com/goproxy/tags/cdn/ - Recent content in CDN on GOPROXY IN ACTION + Recent content in cdn on GOPROXY IN ACTION Hugo -- gohugo.io zh-CN Fri, 05 Jul 2019 08:20:48 +0800 diff --git a/docs/tags/index.xml b/docs/tags/index.xml index cd84ea7..311e588 100644 --- a/docs/tags/index.xml +++ b/docs/tags/index.xml @@ -12,7 +12,7 @@ - CDN + cdn https://snail007.host900.com/goproxy/tags/cdn/ Fri, 05 Jul 2019 08:20:48 +0800