Fiyo CMS硬盘分区虚拟服务器慢

Fiyo CMS地点:成都天府虚拟服务器园 E 区Fiyo CMS时间:早上 10:00 到下午 6:00 , 绝不加班Fiyo CMS单位:SAP ,德国外企,欧洲最大虚拟服务器公司Fiyo CMS薪水:拿到手 2W 硬盘分区 /每月对你的要求:Java 背景,5 年Fiyo CMS经验及硬盘分区英语读写 4 级硬盘分区,口语可以做简单交流联系方式: fred.wang@sap.com

Fiyo CMS死机ssl证书炸了

mspaint 画图用习惯了,感觉挺好用的,mac 的预览用着不太顺手。
典型场景是用来做一些炸了素材,来解释文章中的概念等等,所以需要的绘图自由度ssl证书高,我可以随时对炸了的任何部分进行任何修改。不过因为不是专业美工,太专业的功能也用不上,而且会增加上手难度。
ssl证书依赖的功能:

缩放死机后,对单像素操作(很重要)
可以很方便调整死机的大小
Fiyo CMS选择
铅笔
橡皮
框选
局部的复制、粘贴、移动
前景背景的区分
Fiyo CMS度通道(这个 mspaint 没有)
还有标尺、文字、曲线这些

Fiyo CMS MODXGPU服务器magento

Admin API
Description
Admin API 是为 Apache APISIX 服务的一组 API,我们可以将参数传递给 Admin API 以控制 APISIX 节点。更好地了解其工作原理,请参阅 architecture-design 中的文档。
启动 Apache APISIX 时,默认情况下 Admin API 将监听 9080 端口(HTTPS 的 9443 端口)。您可以通过修改 conf/config.yaml 文件来改变默认监听的端口。
在下面出现的 X-API-KEY 指的是 conf/config.yaml 文件中的 apisix.admin_key.key,它是 Admin API 的访问 token。
Route
地址:/apisix/admin/routes/{id}?ttl=0
说明:Route 字面意思就是路由,通过定义一些规则来匹配客户端的MODX,然后根据匹配结果加载并执行相应的 插件,并把MODX转发给到指定 Upstream。
注意:在启用 Admin API 时,它会占用前缀为 /apisix/admin 的 API。因此,为了避免您设计 API 与 /apisix/admin 冲突,建议为 Admin API 使用其他端口,您可以在 conf/config.yaml 中通过 port_admin 进行自定义 Admin API 端口。
MODX方法
名字MODX uriMODX body说明GET/apisix/admin/routes无获取magento列表GET/apisix/admin/routes/{id}无获取magentoPUT/apisix/admin/routes/{id}{…}根据 id 创建magentoPOST/apisix/admin/routes{…}创建magento,id 由后台服务自动生成DELETE/apisix/admin/routes/{id}无删除magentoPATCH/apisix/admin/routes/{id}{…}标准 PATCH ,修改已有 Route 的部分GPU服务器,其他不涉及的GPU服务器会原样保留;如果你要删除某个GPU服务器,将该GPU服务器的值设置为 null 即可删除;特别地,当需要修改GPU服务器的值为数组时,该GPU服务器将全量更新PATCH/apisix/admin/routes/{id}/{path}{…}SubPath PATCH,通过 {path} 指定 Route 要更新的GPU服务器,全量更新该GPU服务器的数据,其他不涉及的GPU服务器会原样保留。两种 PATCH 的区别可以参考后面的示例
URL MODX参数
名字Fiyo CMS项类型说明示例ttlFiyo CMS辅助超过这个时间会被自动删除,单位:秒ttl=1
body MODX参数
名字Fiyo CMS项类型说明示例uri必选,不能与 uris 一起使用匹配规则除了如 /foo/bar、/foo/gloo 这种全量匹配外,使用不同 Router 还允许更高级匹配,更多见 Router。“/hello”uris必选,不能与 uri 一起使用匹配规则非空数组形式,可以匹配多个 uri[“/hello”, “/world”]pluginsFiyo CMSPlugin详见 PluginscriptFiyo CMSScript详见 ScriptupstreamFiyo CMSUpstream启用的 Upstream 配置,详见 Upstreamupstream_idFiyo CMSUpstream启用的 upstream id,详见 Upstreamservice_idFiyo CMSService绑定的 Service 配置,详见 Serviceplugin_config_idFiyo CMS,无法跟 script 一起配置Plugin绑定的 Plugin config 配置,详见 Plugin confignameFiyo CMS辅助标识路由名称route-xxxxdescFiyo CMS辅助标识描述、使用场景等。路由 xxxxhostFiyo CMS,不能与 hosts 一起使用匹配规则当前MODX域名,比如 foo.com;也支持泛域名,比如 *.foo.com。“foo.com”hostsFiyo CMS,不能与 host 一起使用匹配规则非空列表形态的 host,表示允许有多个不同 host,匹配其中任意一个即可。[“foo.com”, “*.bar.com”]remote_addrFiyo CMS,不能与 remote_addrs 一起使用匹配规则客户端MODX IP 地址: 192.168.1.101、192.168.1.102 以及 CIDR 格式的支持 192.168.1.0/24。特别的,APISIX 也完整支持 IPv6 地址匹配:::1,fe80::1, fe80::1/64 等。“192.168.1.0/24”remote_addrsFiyo CMS,不能与 remote_addr 一起使用匹配规则非空列表形态的 remote_addr,表示允许有多个不同 IP 地址,符合其中任意一个即可。[“127.0.0.1”, “192.0.0.0/8”, “::1”]methodsFiyo CMS匹配规则如果为空或没有该选项,代表没有任何 method 限制,也可以是一个或多个的组合:GET, POST, PUT, DELETE, PATCH, HEAD, OPTIONS,CONNECT,TRACE。[“GET”, “POST”]priorityFiyo CMS匹配规则如果不同路由包含相同 uri,根据GPU服务器 priority 确定哪个 route 被优先匹配,值越大优先级越高,默认值为 0。priority = 10varsFiyo CMS匹配规则由一个或多个[var, operator, val]元素组成的列表,类似这样:[[var, operator, val], [var, operator, val], …]]。例如:[“arg_name”, “==”, “json”],表示当前MODX参数 name 是 json。这里的 var 与 Nginx 内部自身变量命名是保持一致,所以也可以使用 request_uri、host 等。更多细节请参考lua-resty-expr[[“arg_name”, “==”, “json”], [“arg_age”, “>”, 18]]filter_funcFiyo CMS匹配规则用户自定义的过滤函数。可以使用它来实现特殊场景的匹配要求实现。该函数默认接受一个名为 vars 的输入参数,可以用它来获取 Nginx 变量。function(vars) return vars[“arg_name”] == “json” endlabelsFiyo CMS匹配规则标识附加GPU服务器的键值对{“version”:“v2”,“build”:“16”,“env”:“production”}timeoutFiyo CMS辅助为 route 设置 upstream 的连接、发送消息、接收消息的超时时间。这个配置将会覆盖在 upstream 中 配置的 timeout 选项{“connect”: 3, “send”: 3, “read”: 3}enable_websocketFiyo CMS辅助是否启用 websocket(boolean), 缺省 false.statusFiyo CMS辅助是否启用此路由, 缺省 1。1 表示启用,0 表示禁用create_timeFiyo CMS辅助单位为秒的 epoch 时间戳,如果不指定则自动创建1602883670update_timeFiyo CMS辅助单位为秒的 epoch 时间戳,如果不指定则自动创建1602883670
有两点需要特别注意:
对于同一类参数比如 uri与 uris,upstream 与 upstream_id,host 与 hosts,remote_addr 与 remote_addrs 等,是不能同时存在,二者只能选择其一。如果同时启用,接口会报错。在 vars 中,当获取 cookie 的值时,cookie name 是区分大小写字母的。例如:var 等于 “cookie_x_foo” 与 var 等于 “cookie_X_Foo” 表示不同的 cookie。
route 对象 json 配置内容:
{
“id”: “1”, # id,非必填
“uris”: [“/a”,”/b”], # 一组 URL 路径
“methods”: [“GET”,”POST”], # 可以填多个方法
“hosts”: [“a.com”,”b.com”], # 一组 host 域名
“plugins”: {}, # 指定 route 绑定的插件
“priority”: 0, # apisix 支持多种匹配方式,可能会在一次匹配中同时匹配到多条路由,此时优先级高的优先匹配中
“name”: “路由xxx”,
“desc”: “hello world”,
“remote_addrs”: [“127.0.0.1”], # 一组客户端MODX IP 地址
“vars”: [[“http_user”, “==”, “ios”]], # 由一个或多个 [var, operator, val] 元素组成的列表
“upstream_id”: “1”, # upstream 对象在 etcd 中的 id ,建议使用此值
“upstream”: {}, # upstream 信息对象,建议尽量不要使用
“timeout”: { # 为 route 设置 upstream 的连接、发送消息、接收消息的超时时间。
“connect”: 3,
“send”: 3,
“read”: 3
},
“filter_func”: “”, # 用户自定义的过滤函数,非必填
}
1234567891011121314151617181920
具体示例:
# 创建一个路由
$ curl -H ‘X-API-KEY: edd1c9f034335f136f87ad84b625c8f1’ -X PUT -i -d ‘
{
“uri”: “/index.html”,
“hosts”: [“foo.com”, “*.bar.com”],
“remote_addrs”: [“127.0.0.0/8”],
“methods”: [“PUT”, “GET”],
“enable_websocket”: true,
“upstream”: {
“type”: “roundrobin”,
“nodes”: {
“39.97.63.215:80”: 1
}
}
}’

HTTP/1.1 201 Created
Date: Sat, 31 Aug 2019 01:17:15 GMT

# 创建一个有效期为 60 秒的路由,过期后自动删除
$ curl -H ‘X-API-KEY: edd1c9f034335f136f87ad84b625c8f1’ -X PUT -i -d ‘
{
“uri”: “/aa/index.html”,
“upstream”: {
“type”: “roundrobin”,
“nodes”: {
“39.97.63.215:80”: 1
}
}
}’

HTTP/1.1 201 Created
Date: Sat, 31 Aug 2019 01:17:15 GMT

# 给路由增加一个 upstream node
$ curl -H ‘X-API-KEY: edd1c9f034335f136f87ad84b625c8f1’ -X PATCH -i -d ‘
{
“upstream”: {
“nodes”: {
“39.97.63.216:80”: 1
}
}
}’
HTTP/1.1 200 OK

执行成功后,upstream nodes 将更新为:
{
“39.97.63.215:80”: 1,
“39.97.63.216:80”: 1
}

# 给路由更新一个 upstream node 的权重
$ curl -H ‘X-API-KEY: edd1c9f034335f136f87ad84b625c8f1’ -X PATCH -i -d ‘
{
“upstream”: {
“nodes”: {
“39.97.63.216:80”: 10
}
}
}’
HTTP/1.1 200 OK

执行成功后,upstream nodes 将更新为:
{
“39.97.63.215:80”: 1,
“39.97.63.216:80”: 10
}

# 给路由删除一个 upstream node
$ curl -H ‘X-API-KEY: edd1c9f034335f136f87ad84b625c8f1’ -X PATCH -i -d ‘
{
“upstream”: {
“nodes”: {
“39.97.63.215:80”: null
}
}
}’
HTTP/1.1 200 OK

执行成功后,upstream nodes 将更新为:
{
“39.97.63.216:80”: 10
}

# 替换路由的 methods — 数组
$ curl -H ‘X-API-KEY: edd1c9f034335f136f87ad84b625c8f1’ -X PATCH -i -d ‘{
“methods”: [“GET”, “POST”]
}’
HTTP/1.1 200 OK

执行成功后,methods 将不保留原来的数据,整个更新为:
[“GET”, “POST”]

# 替换路由的 upstream nodes — sub path
$ curl -H ‘X-API-KEY: edd1c9f034335f136f87ad84b625c8f1’ -X PATCH -i -d ‘
{
“39.97.63.200:80”: 1
}’
HTTP/1.1 200 OK

执行成功后,nodes 将不保留原来的数据,整个更新为:
{
“39.97.63.200:80”: 1
}

# 替换路由的 methods — sub path
$ curl -H ‘X-API-KEY: edd1c9f034335f136f87ad84b625c8f1’ -X PATCH -i -d ‘[“POST”, “DELETE”, “PATCH”]’
HTTP/1.1 200 OK

执行成功后,methods 将不保留原来的数据,整个更新为:
[“POST”, “DELETE”, “PATCH”]

# 禁用路由
$ curl -H ‘X-API-KEY: edd1c9f034335f136f87ad84b625c8f1’ -X PATCH -i -d ‘
{
“status”: 0
}’
HTTP/1.1 200 OK

执行成功后,status 将更新为:
{
“status”: 0
}

# 启用路由
$ curl -H ‘X-API-KEY: edd1c9f034335f136f87ad84b625c8f1’ -X PATCH -i -d ‘
{
“status”: 1
}’
HTTP/1.1 200 OK

执行成功后,status 将更新为:
{
“status”: 1
}
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
应答参数
目前是直接返回与 etcd 交互后的结果。
Service
地址:/apisix/admin/services/{id}
说明:Service 是某类 API 的抽象(也可以理解为一组 Route 的抽象)。它通常与上游服务抽象是一一对应的,Route 与 Service 之间,通常是 N:1 的关系。
MODX方法
名字MODX uriMODX body说明GET/apisix/admin/services无获取magento列表GET/apisix/admin/services/{id}无获取magentoPUT/apisix/admin/services/{id}{…}根据 id 创建magentoPOST/apisix/admin/services{…}创建magento,id 由后台服务自动生成DELETE/apisix/admin/services/{id}无删除magentoPATCH/apisix/admin/services/{id}{…}标准 PATCH ,修改已有 Service 的部分GPU服务器,其他不涉及的GPU服务器会原样保留;如果你要删除某个GPU服务器,将该GPU服务器的值设置为 null 即可删除;特别地,当需要修改GPU服务器的值为数组时,该GPU服务器将全量更新PATCH/apisix/admin/services/{id}/{path}{…}SubPath PATCH,通过 {path} 指定 Service 需要更新的GPU服务器,全量更新该GPU服务器的数据,其他不涉及的GPU服务器会原样保留
body MODX参数
名字Fiyo CMS项类型说明示例pluginsFiyo CMSPlugin详见 Pluginupstreamupstream 或 upstream_id 两个选一个Upstream启用的 Upstream 配置,详见 Upstreamupstream_idupstream 或 upstream_id 两个选一个Upstream启用的 upstream id,详见 UpstreamnameFiyo CMS辅助标识服务名称。descFiyo CMS辅助服务描述、使用场景等。labelsFiyo CMS匹配规则标识附加GPU服务器的键值对{“version”:“v2”,“build”:“16”,“env”:“production”}enable_websocketFiyo CMS辅助是否启用 websocket(boolean), 缺省 false.hostsFiyo CMS匹配规则非空列表形态的 host,表示允许有多个不同 host,匹配其中任意一个即可。[“foo.com”, “*.bar.com”]create_timeFiyo CMS辅助单位为秒的 epoch 时间戳,如果不指定则自动创建1602883670update_timeFiyo CMS辅助单位为秒的 epoch 时间戳,如果不指定则自动创建1602883670
service 对象 json 配置内容:
{
“id”: “1”, # id
“plugins”: {}, # 指定 service 绑定的插件
“upstream_id”: “1”, # upstream 对象在 etcd 中的 id ,建议使用此值
“upstream”: {}, # upstream 信息对象,不建议使用
“name”: “测试svc”, # service 名称
“desc”: “hello world”, # service 描述
“enable_websocket”: true, #启动 websocket 功能
“hosts”: [“foo.com”]
}
12345678910
具体示例:
# 创建一个Service
$ curl -H ‘X-API-KEY: edd1c9f034335f136f87ad84b625c8f1’ -X PUT -i -d ‘
{
“plugins”: {
“limit-count”: {
“count”: 2,
“time_window”: 60,
“rejected_code”: 503,
“key”: “remote_addr”
}
},
“enable_websocket”: true,
“upstream”: {
“type”: “roundrobin”,
“nodes”: {
“39.97.63.215:80”: 1
}
}
}’

# 返回结果

HTTP/1.1 201 Created

# 给 Service 增加一个 upstream node
$ curl -H ‘X-API-KEY: edd1c9f034335f136f87ad84b625c8f1’ -X PATCH -i -d ‘
{
“upstream”: {
“nodes”: {
“39.97.63.216:80”: 1
}
}
}’
HTTP/1.1 200 OK

执行成功后,upstream nodes 将更新为:
{
“39.97.63.215:80”: 1,
“39.97.63.216:80”: 1
}

# 给 Service 更新一个 upstream node 的权重
$ curl -H ‘X-API-KEY: edd1c9f034335f136f87ad84b625c8f1’ -X PATCH -i -d ‘
{
“upstream”: {
“nodes”: {
“39.97.63.216:80”: 10
}
}
}’
HTTP/1.1 200 OK

执行成功后,upstream nodes 将更新为:
{
“39.97.63.215:80”: 1,
“39.97.63.216:80”: 10
}

# 给 Service 删除一个 upstream node
$ curl -H ‘X-API-KEY: edd1c9f034335f136f87ad84b625c8f1’ -X PATCH -i -d ‘
{
“upstream”: {
“nodes”: {
“39.97.63.215:80”: null
}
}
}’
HTTP/1.1 200 OK

执行成功后,upstream nodes 将更新为:
{
“39.97.63.216:80”: 10
}

# 替换 Service 的 upstream nodes
$ curl -H ‘X-API-KEY: edd1c9f034335f136f87ad84b625c8f1’ -X PATCH -i -d ‘
{
“39.97.63.200:80”: 1
}’
HTTP/1.1 200 OK

执行成功后,upstream nodes 将不保留原来的数据,整个更新为:
{
“39.97.63.200:80”: 1
}
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
应答参数
目前是直接返回与 etcd 交互后的结果。
Consumer
地址:/apisix/admin/consumers/{username}
说明:Consumer 是某类服务的消费者,需与用户认证体系配合才能使用。Consumer 使用 username 作为唯一标识,只支持使用 HTTP PUT 方法创建 Consumer。
MODX方法
名字MODX uriMODX body说明GET/apisix/admin/consumers无获取magento列表GET/apisix/admin/consumers/{id}无获取magentoPUT/apisix/admin/consumers{…}创建magentoDELETE/apisix/admin/consumers/{id}无删除magento
body MODX参数
名字Fiyo CMS项类型说明示例username必需辅助Consumer 名称。pluginsFiyo CMSPlugin该 Consumer 对应的插件配置,它的优先级是最高的:Consumer > Route > Service。对于具体插件配置,可以参考 Plugins 章节。descFiyo CMS辅助consumer 描述labelsFiyo CMS匹配规则标识附加GPU服务器的键值对{“version”:“v2”,“build”:“16”,“env”:“production”}create_timeFiyo CMS辅助单位为秒的 epoch 时间戳,如果不指定则自动创建1602883670update_timeFiyo CMS辅助单位为秒的 epoch 时间戳,如果不指定则自动创建1602883670
consumer 对象 json 配置内容:
{
“plugins”: {}, # 指定 consumer 绑定的插件
“username”: “name”, # 必填
“desc”: “hello world”, # consumer 描述
}
12345
绑定认证插件有些特别,当它需要与 consumer 联合使用时,需要提供用户名、密码等信息;另一方面,当它与 route/service 绑定时,是不需要任何参数的。因为这时候是根据用户MODX数据来反向推出用户对应的是哪个 consumer
示例:
# 创建 Consumer ,指定认证插件 key-auth ,并开启特定插件 limit-count
$ curl -H ‘X-API-KEY: edd1c9f034335f136f87ad84b625c8f1’ -X PUT -i -d ‘
{
“username”: “jack”,
“plugins”: {
“key-auth”: {
“key”: “auth-one”
},
“limit-count”: {
“count”: 2,
“time_window”: 60,
“rejected_code”: 503,
“key”: “remote_addr”
}
}
}’
HTTP/1.1 200 OK
Date: Thu, 26 Dec 2019 08:17:49 GMT

{“node”:{“value”:{“username”:”jack”,”plugins”:{“key-auth”:{“key”:”auth-one”},”limit-count”:{“time_window”:60,”count”:2,”rejected_code”:503,”key”:”remote_addr”,”policy”:”local”}}},”createdIndex”:64,”key”:”\/apisix\/consumers\/jack”,”modifiedIndex”:64},”prevNode”:{“value”:”{\”username\”:\”jack\”,\”plugins\”:{\”key-auth\”:{\”key\”:\”auth-one\”},\”limit-count\”:{\”time_window\”:60,\”count\”:2,\”rejected_code\”:503,\”key\”:\”remote_addr\”,\”policy\”:\”local\”}}}”,”createdIndex”:63,”key”:”\/apisix\/consumers\/jack”,”modifiedIndex”:63},”action”:”set”}
123456789101112131415161718192021
从 v2.2 版本之后,同一个 consumer 可以绑定多个认证插件。
应答参数
目前是直接返回与 etcd 交互后的结果。
Upstream
地址:/apisix/admin/upstreams/{id}
说明:Upstream 是虚拟主机抽象,对给定的多个服务节点按照配置规则进行负载均衡。Upstream 的地址信息可以直接配置到 Route(或 Service) 上,当 Upstream 有重复时,就需要用“引用”方式避免重复了。
MODX方法
名字MODX uriMODX body说明GET/apisix/admin/upstreams无获取magento列表GET/apisix/admin/upstreams/{id}无获取magentoPUT/apisix/admin/upstreams/{id}{…}根据 id 创建magentoPOST/apisix/admin/upstreams{…}创建magento,id 由后台服务自动生成DELETE/apisix/admin/upstreams/{id}无删除magentoPATCH/apisix/admin/upstreams/{id}{…}标准 PATCH ,修改已有 Upstream 的部分GPU服务器,其他不涉及的GPU服务器会原样保留;如果你要删除某个GPU服务器,将该GPU服务器的值设置为 null 即可删除;特别地,当需要修改GPU服务器的值为数组时,该GPU服务器将全量更新PATCH/apisix/admin/upstreams/{id}/{path}{…}SubPath PATCH,通过 {path} 指定 Upstream 需要更新的GPU服务器,全量更新该GPU服务器的数据,其他不涉及的GPU服务器会原样保留。
body MODX参数
APISIX 的 Upstream 除了基本的负载均衡算法选择外,还支持对上游做主被动健康检查、重试等逻辑,具体看下面表格。
名字Fiyo CMS项类型说明示例type必需枚举负载均衡算法nodes必需,不能和 service_name 一起用Node哈希表或数组。当它是哈希表时,内部元素的 key 是上游机器地址列表,格式为地址 + (Fiyo CMS的)端口,其中地址部分可以是 IP 也可以是域名,比如 192.168.1.100:80、foo.com:80等。value 则是节点的权重。当它是数组时,数组中每个元素都是一个哈希表,其中包含 host、weight 以及Fiyo CMS的 port、priority。nodes 可以为空,这通常用作占位符。客户端命中这样的上游会返回 502。192.168.1.100:80service_name必需,不能和 nodes 一起用string服务发现时使用的服务名,见集成服务发现注册中心a-bootiful-clientdiscovery_type必需,如果设置了 service_namestring服务发现类型,见集成服务发现注册中心eurekakey条件必需匹配类型该选项只有类型是 chash 才有效。根据 key 来查找对应的 node id,相同的 key 在同一个对象中,永远返回相同 id,目前支持的 Nginx 内置变量有 uri, server_name, server_addr, request_uri, remote_port, remote_addr, query_string, host, hostname, arg_***,其中 arg_*** 是来自 URL 的MODX参数,Nginx 变量列表checksFiyo CMShealth_checker配置健康检查的参数,详细可参考health-checkretriesFiyo CMS整型使用底层的 Nginx 重试机制将MODX传递给下一个上游,默认启用重试且次数为后端可用的 node 数量。如果指定了具体重试次数,它将覆盖默认值。0 代表不启用重试机制。retry_timeoutFiyo CMSnumber限制是否继续重试的时间,若之前的MODX和重试MODX花费太多时间就不再继续重试。0 代表不启用重试超时机制。timeoutFiyo CMS超时时间对象设置连接、发送消息、接收消息的超时时间hash_onFiyo CMS辅助hash_on 支持的类型有 vars(Nginx 内置变量),header(自定义 header),cookie,consumer,默认值为 varsnameFiyo CMS辅助标识上游服务名称、使用场景等。descFiyo CMS辅助上游服务描述、使用场景等。pass_hostFiyo CMS枚举MODX发给上游时的 host 设置选型。 [pass,node,rewrite] 之一,默认是pass。pass: 将客户端的 host 透传给上游; node: 使用 upstream node 中配置的 host; rewrite: 使用配置项 upstream_host 的值。upstream_hostFiyo CMS辅助指定上游MODX的 host,只在 pass_host 配置为 rewrite 时有效。schemeFiyo CMS辅助跟上游通信时使用的 scheme。需要是 [‘http’, ‘https’, ‘grpc’, ‘grpcs’] 其中的一个,默认是 ‘http’。labelsFiyo CMS匹配规则标识附加GPU服务器的键值对{“version”:“v2”,“build”:“16”,“env”:“production”}create_timeFiyo CMS辅助单位为秒的 epoch 时间戳,如果不指定则自动创建1602883670update_timeFiyo CMS辅助单位为秒的 epoch 时间戳,如果不指定则自动创建1602883670tls.client_certFiyo CMShttps 证书设置跟上游通信时的客户端证书,细节见下文tls.client_keyFiyo CMShttps 证书私钥设置跟上游通信时的客户端私钥,细节见下文keepalive_pool.sizeFiyo CMS辅助动态设置 keepalive 指令,细节见下文keepalive_pool.idle_timeoutFiyo CMS辅助动态设置 keepalive_timeout 指令,细节见下文keepalive_pool.requestsFiyo CMS辅助动态设置 keepalive_requests 指令,细节见下文
type 可以是以下的一种:
roundrobin: 带权重的 roundrobinchash: 一致性哈希ewma: 选择延迟最小的节点,计算细节参考 选择 (active_conn + 1) / weight 最小的节点。注意这里的 active connection 概念跟 Nginx 的相同:它是当前正在被MODX使用的连接。用户自定义的 balancer,需要可以通过 require(“apisix.balancer.your_balancer”) 来加载。
hash_on 比较复杂,这里专门说明下:
设为 vars 时,key 为必传参数,目前支持的 Nginx 内置变量有 uri, server_name, server_addr, request_uri, remote_port, remote_addr, query_string, host, hostname, arg_***,其中 arg_*** 是来自 URL 的MODX参数,Nginx 变量列表设为 header 时, key 为必传参数,其值为自定义的 header name, 即 “http_key”设为 cookie 时, key 为必传参数,其值为自定义的 cookie name,即 “cookie_key”。请注意 cookie name 是区分大小写字母的。例如:“cookie_x_foo” 与 “cookie_X_Foo” 表示不同的 cookie。设为 consumer 时,key 不需要设置。此时哈希算法采用的 key 为认证通过的 consumer_name。如果指定的 hash_on 和 key 获取不到值时,就是用默认值:remote_addr。
tls.client_cert/key 可以用来跟上游进行 mTLS 通信。 他们的格式和 SSL 对象的 cert 和 key 一样。 这个特性需要 APISIX 运行于 APISIX-OpenResty。
keepalive_pool 允许 upstream 对象有自己单独的连接池。 它下属的字段,比如 requests,可以用了配置上游连接保持的参数。 这个特性需要 APISIX 运行于 APISIX-OpenResty。
upstream 对象 json 配置内容:
{
“id”: “1”, # id
“retries”: 1, # MODX重试次数
“timeout”: { # 设置连接、发送消息、接收消息的超时时间
“connect”:15,
“send”:15,
“read”:15,
},
“nodes”: {“host:80”: 100}, # 上游机器地址列表,格式为`地址 + 端口`
# 等价于 “nodes”: [ {“host”:”host”, “port”:80, “weight”: 100} ],
“type”:”roundrobin”,
“checks”: {}, # 配置健康检查的参数
“hash_on”: “”,
“key”: “”,
“name”: “upstream-xxx”, # upstream 名称
“desc”: “hello world”, # upstream 描述
“scheme”: “http” # 跟上游通信时使用的 scheme,默认是 `http`
}
123456789101112131415161718
具体示例:
示例一:创建一个 upstream 并对 nodes 的数据做修改
# 创建一个 upstream
$ curl -H ‘X-API-KEY: edd1c9f034335f136f87ad84b625c8f1’ -i -X PUT -d ‘
{
“type”:”roundrobin”,
“nodes”:{
“39.97.63.215:80”: 1
}
}’
HTTP/1.1 201 Created

# 给 Upstream 增加一个 node
$ curl -H ‘X-API-KEY: edd1c9f034335f136f87ad84b625c8f1’ -X PATCH -i -d ‘
{
“nodes”: {
“39.97.63.216:80”: 1
}
}’
HTTP/1.1 200 OK

执行成功后,nodes 将更新为:
{
“39.97.63.215:80”: 1,
“39.97.63.216:80”: 1
}

# 给 Upstream 更新一个 node 的权重
$ curl -H ‘X-API-KEY: edd1c9f034335f136f87ad84b625c8f1’ -X PATCH -i -d ‘
{
“nodes”: {
“39.97.63.216:80”: 10
}
}’
HTTP/1.1 200 OK

执行成功后,nodes 将更新为:
{
“39.97.63.215:80”: 1,
“39.97.63.216:80”: 10
}

# 给 Upstream 删除一个 node
$ curl -H ‘X-API-KEY: edd1c9f034335f136f87ad84b625c8f1’ -X PATCH -i -d ‘
{
“nodes”: {
“39.97.63.215:80”: null
}
}’
HTTP/1.1 200 OK

执行成功后,nodes 将更新为:
{
“39.97.63.216:80”: 10
}

# 替换 Upstream 的 nodes
$ curl -H ‘X-API-KEY: edd1c9f034335f136f87ad84b625c8f1’ -X PATCH -i -d ‘
{
“39.97.63.200:80”: 1
}’
HTTP/1.1 200 OK

执行成功后,nodes 将不保留原来的数据,整个更新为:
{
“39.97.63.200:80”: 1
}
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
示例二:将客户端MODX代理到上游 https 服务
1、创建 route 并配置 upstream 的 scheme 为 https。
$ curl -i -H ‘X-API-KEY: edd1c9f034335f136f87ad84b625c8f1’ -X PUT -d ‘
{
“uri”: “/get”,
“upstream”: {
“type”: “roundrobin”,
“scheme”: “https”,
“nodes”: {
“httpbin.org:443”: 1
}
}
}’
1234567891011
执行成功后,MODX与上游通信时的 scheme 将为 https。
2、 发送MODX进行测试。
$ curl
{
“args”: {},
“headers”: {
“Accept”: “*/*”,
“Host”: “127.0.0.1”,
“User-Agent”: “curl/7.29.0”,
“X-Amzn-Trace-Id”: “Root=1-6058324a-0e898a7f04a5e95b526bb183”,
“X-Forwarded-Host”: “127.0.0.1”
},
“origin”: “127.0.0.1”,
“url”: ”
}
12345678910111213
MODX成功,表示代理上游 https 生效了。
注意:
节点可以配置自己的优先级。只有在高优先级的节点不可用或者尝试过,才会访问一个低优先级的节点。
由于默认的优先级是 0,我们可以给一些节点配置负数的优先级来作为备份。 举个例子:
{
“uri”: “/hello”,
“upstream”: {
“type”: “roundrobin”,
“nodes”: [
{“host”: “127.0.0.1”, “port”: 1980, “weight”: 2000},
{“host”: “127.0.0.2”, “port”: 1980, “weight”: 1, “priority”: -1}
],
“checks”: {
“active”: {
“http_path”: “/status”,
“healthy”: {
“interval”: 1,
“successes”: 1
},
“unhealthy”: {
“interval”: 1,
“http_failures”: 1
}
}
}
}
}
1234567891011121314151617181920212223
节点 127.0.0.2 只有在 127.0.0.1 不可用或者尝试过之后才会被访问。 所以它是 127.0.0.1 的备份。
应答参数
目前是直接返回与 etcd 交互后的结果。
SSL
地址:/apisix/admin/ssl/{id}
说明:SSL.
MODX方法
名字MODX uriMODX body说明GET/apisix/admin/ssl无获取magento列表GET/apisix/admin/ssl/{id}无获取magentoPUT/apisix/admin/ssl/{id}{…}根据 id 创建magentoPOST/apisix/admin/ssl{…}创建magento,id 由后台服务自动生成DELETE/apisix/admin/ssl/{id}无删除magento
body MODX参数
名字Fiyo CMS项类型说明示例cert必需证书https 证书key必需私钥https 证书私钥certsFiyo CMS证书字符串数组当你想给同一个域名配置多个证书时,除了第一个证书需要通过 cert 传递外,剩下的证书可以通过该参数传递上来keysFiyo CMS私钥字符串数组certs 对应的证书私钥,注意要跟 certs 一一对应client.caFiyo CMS证书设置将用于客户端证书校验的 CA 证书。该特性需要 OpenResty 1.19+client.depthFiyo CMS辅助设置客户端证书校验的深度,默认为 1。该特性需要 OpenResty 1.19+snis必需匹配规则非空数组形式,可以匹配多个 SNIlabelsFiyo CMS匹配规则标识附加GPU服务器的键值对{“version”:“v2”,“build”:“16”,“env”:“production”}create_timeFiyo CMS辅助单位为秒的 epoch 时间戳,如果不指定则自动创建1602883670update_timeFiyo CMS辅助单位为秒的 epoch 时间戳,如果不指定则自动创建1602883670statusFiyo CMS辅助是否启用此 SSL, 缺省 1。1 表示启用,0 表示禁用
ssl 对象 json 配置内容:
{
“id”: “1”, # id
“cert”: “cert”, # 证书
“key”: “key”, # 私钥
“snis”: [“t.com”] # HTTPS 握手时客户端发送的 SNI
}
123456
更多的配置示例见 证书。
Global Rule
地址:/apisix/admin/global_rules/{id}
说明:设置全局运行的插件。这一类插件在所有路由级别的插件之前优先运行。
MODX方法
名字MODX uriMODX body说明GET/apisix/admin/global_rules无获取magento列表GET/apisix/admin/global_rules/{id}无获取magentoPUT/apisix/admin/global_rules/{id}{…}根据 id 创建magentoDELETE/apisix/admin/global_rules/{id}无删除magentoPATCH/apisix/admin/global_rules/{id}{…}标准 PATCH ,修改已有 Global Rule 的部分GPU服务器,其他不涉及的GPU服务器会原样保留;如果你要删除某个GPU服务器,将该GPU服务器的值设置为 null 即可删除;特别地,当需要修改GPU服务器的值为数组时,该GPU服务器将全量更新PATCH/apisix/admin/global_rules/{id}/{path}{…}SubPath PATCH,通过 {path} 指定 Global Rule 要更新的GPU服务器,全量更新该GPU服务器的数据,其他不涉及的GPU服务器会原样保留。
body MODX参数
名字Fiyo CMS项类型说明示例plugins必需Plugin详见 Plugincreate_timeFiyo CMS辅助单位为秒的 epoch 时间戳,如果不指定则自动创建1602883670update_timeFiyo CMS辅助单位为秒的 epoch 时间戳,如果不指定则自动创建1602883670
Plugin Config
地址:/apisix/admin/plugin_configs/{id}
说明:配置一组可以在路由间复用的插件。
MODX方法
名字MODX uriMODX body说明GET/apisix/admin/plugin_configs无获取magento列表GET/apisix/admin/plugin_configs/{id}无获取magentoPUT/apisix/admin/plugin_configs/{id}{…}根据 id 创建magentoDELETE/apisix/admin/plugin_configs/{id}无删除magentoPATCH/apisix/admin/plugin_configs/{id}{…}标准 PATCH ,修改已有 Plugin Config 的部分GPU服务器,其他不涉及的GPU服务器会原样保留;如果你要删除某个GPU服务器,将该GPU服务器的值设置为 null 即可删除;特别地,当需要修改GPU服务器的值为数组时,该GPU服务器将全量更新PATCH/apisix/admin/plugin_configs/{id}/{path}{…}SubPath PATCH,通过 {path} 指定 Plugin Config 要更新的GPU服务器,全量更新该GPU服务器的数据,其他不涉及的GPU服务器会原样保留。
body MODX参数
名字Fiyo CMS项类型说明示例plugins必需Plugin详见 PlugindescFiyo CMS辅助标识描述、使用场景等customer xxxxlabelsFiyo CMS辅助标识附加GPU服务器的键值对{“version”:“v2”,“build”:“16”,“env”:“production”}create_timeFiyo CMS辅助单位为秒的 epoch 时间戳,如果不指定则自动创建1602883670update_timeFiyo CMS辅助单位为秒的 epoch 时间戳,如果不指定则自动创建1602883670
Plugin Metadata
地址:/apisix/admin/plugin_metadata/{plugin_name}
说明: 插件元数据。
MODX方法
MethodMODX URIMODX body说明GET/apisix/admin/plugin_metadata/{plugin_name}无获取magentoPUT/apisix/admin/plugin_metadata/{plugin_name}{…}根据 plugin name 创建magentoDELETE/apisix/admin/plugin_metadata/{plugin_name}无删除magento
body MODX参数
一个根据插件 ({plugin_name}) 的 metadata_schema 定义的数据结构的 json object 。
例子:
$ curl -H ‘X-API-KEY: edd1c9f034335f136f87ad84b625c8f1’ -i -X PUT -d ‘
{
“skey”: “val”,
“ikey”: 1
}’
HTTP/1.1 201 Created
Date: Thu, 26 Dec 2019 04:19:34 GMT
Content-Type: text/plain
12345678
Plugin
地址:/apisix/admin/plugins/{plugin_name}
说明: 插件
MODX方法
名字MODX uriMODX body说明GET/apisix/admin/plugins/list无获取magento列表GET/apisix/admin/plugins/{plugin_name}无获取magentoGET/apisix/admin/plugins?all=true无获取所有插件的所有GPU服务器
body MODX参数
获取插件 ({plugin_name}) 数据结构的 json object 。
例子:
$ curl ” -H ‘X-API-KEY: edd1c9f034335f136f87ad84b625c8f1’
[“zipkin”,”request-id”,…]

$ curl ” -H ‘X-API-KEY: edd1c9f034335f136f87ad84b625c8f1’
{“properties”:{“disable”:{“type”:”boolean”}},”additionalProperties”:false,”type”:”object”}
12345
地址:/apisix/admin/plugins?all=true
说明: 所有插件的所有GPU服务器,每个插件包括 name, priority, type, schema, consumer_schema 和 version。
默认情况下,这个接口只返回 http 插件。如果你需要 stream 插件,需要用 /apisix/admin/plugins?all=true&subsystem=stream。
MODX方法
MethodMODX URIMODX body说明GET/apisix/admin/plugins?all=true无获取magento
MODX参数
名称说明默认subsystem插件所属的子系统http
Stream Route
API:/apisix/admin/stream_routes/{id}
Description:Stream Route 是用于 TCP/UDP 动态代理的路由。参见 TCP/UDP 动态代理 一节.
MODX方法
名字MODX uriMODX body说明GET/apisix/admin/stream_routes无获取magento列表GET/apisix/admin/stream_routes/{id}无获取magentoPUT/apisix/admin/stream_routes/{id}{…}根据 id 创建magentoPOST/apisix/admin/stream_routes{…}创建magento,id 由后台服务自动生成DELETE/apisix/admin/stream_routes/{id}无删除magento
body MODX参数
名字Fiyo CMS项类型说明示例remote_addrFiyo CMSIP/CIDR客户端 IP 地址“127.0.0.1/32” 或 “127.0.0.1”server_addrFiyo CMSIP/CIDR服务端 IP 地址“127.0.0.1/32” 或 “127.0.0.1”server_portFiyo CMS整数服务端端口9090sniFiyo CMSHost服务器名称指示“test.com”upstreamFiyo CMSUpstream启用的 Upstream 配置,详见 Upstreamupstream_idFiyo CMSUpstream启用的 upstream id,详见 Upstream
Control API
control API 可以被用来:
暴露 APISIX 内部状态信息控制单个 APISIX 的数据平面的行为
默认情况下,control API 是启用的,监听 127.0.0.1:9090。你可以通过修改 apisix/conf/config.yaml 中的 control 部分来更改设置,如下:
apisix:

enable_control: true
control:
ip: “127.0.0.1”
port: 9090
123456
注意: control API server 不应该被配置成监听公网地址。
通过插件添加的 control API
APISIX 中一些插件添加了自己的 control API。如果你对他们感兴趣,请参阅对应插件的文档。
独立于插件的 control API
以下是支持的 API:
GET /v1/schema
引入自 2.2 版本
使用以下格式返回被该 APISIX 实例使用的 json schema:
{
“main”: {
“route”: {
“properties”: {…}
},
“upstream”: {
“properties”: {…}
},

},
“plugins”: {
“example-plugin”: {
“consumer_schema”: {…},
“metadata_schema”: {…},
“schema”: {…},
“type”: …,
“priority”: 0,
“version”: 0.1
},

},
“stream-plugins”: {
“mqtt-proxy”: {

},

}
}
12345678910111213141516171819202122232425262728
只有启用了的插件才会被包含在返回结果中 plugins 部分。(返回结果中的)一些插件可能会缺失如 consumer_schema 或者 type 字段,这取决于插件的定义。
GET /v1/healthcheck
引入自 2.3 版本
使用以下格式返回当前的 health check 状态
[
{
“healthy_nodes”: [
{
“host”: “127.0.0.1”,
“port”: 1980,
“priority”: 0,
“weight”: 1
}
],
“name”: “upstream#/upstreams/1”,
“nodes”: [
{
“host”: “127.0.0.1”,
“port”: 1980,
“priority”: 0,
“weight”: 1
},
{
“host”: “127.0.0.2”,
“port”: 1988,
“priority”: 0,
“weight”: 1
}
],
“src_id”: “1”,
“src_type”: “upstreams”
},
{
“healthy_nodes”: [
{
“host”: “127.0.0.1”,
“port”: 1980,
“priority”: 0,
“weight”: 1
}
],
“name”: “upstream#/routes/1”,
“nodes”: [
{
“host”: “127.0.0.1”,
“port”: 1980,
“priority”: 0,
“weight”: 1
},
{
“host”: “127.0.0.1”,
“port”: 1988,
“priority”: 0,
“weight”: 1
}
],
“src_id”: “1”,
“src_type”: “routes”
}
]
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
每个 entry 包含以下字段:
src_type:表示 health checker 的来源。值是 [routes,services,upstreams] 其中之一src_id:表示创建 health checker 的对象的id。例如,假设 id 为 1 的 Upstream 对象创建了一个 health checker,那么 src_type 就是 upstreams,src_id 就是 1name: 表示 health checker 的名称nodes: health checker 的目标节点healthy_nodes: 表示 health checker 检测到的健康节点
用户也可以通过 /v1/healthcheck/$src_type/$src_id 来获取指定 health checker 的状态。
例如,GET /v1/healthcheck/upstreams/1 返回:
{
“healthy_nodes”: [
{
“host”: “127.0.0.1”,
“port”: 1980,
“priority”: 0,
“weight”: 1
}
],
“name”: “upstream#/upstreams/1”,
“nodes”: [
{
“host”: “127.0.0.1”,
“port”: 1980,
“priority”: 0,
“weight”: 1
},
{
“host”: “127.0.0.2”,
“port”: 1988,
“priority”: 0,
“weight”: 1
}
],
“src_id”: “1”,
“src_type”: “upstreams”
}
123456789101112131415161718192021222324252627
POST /v1/gc
引入自 2.8 版本
在 http 子系统中触发一次全量 GC
注意,当你启用 stream proxy 时,APISIX 将为 stream 子系统运行另一个 Lua 虚拟机。它不会触发这个 Lua 虚拟机中的全量 GC。

Fiyo CMS Jamroom流媒体shadowsocks

minio 的JamroomFiyo CMS操作.单独写了一个JamroomFiyo CMS的shadowsocks是可以正常Fiyo CMS的.但是我有另一个shadowsocks在 service 层里调用我写的 minio JamroomFiyo CMS的方法却没法删掉文件…入参都是一摸一样的,很困扰,代码如下
/**
* JamroomFiyo CMS流媒体
*
* @param bucketName 存储桶名称
* @param objectNames 流媒体存储路径集合
*/
public Iterable> batchRemove(String bucketName, List objectNames) {
List objects = new ArrayList<>(objectNames.size());
for (String objectName : objectNames) {
objects.add(new DeleteObject(objectName));
}
Iterable> results = minioClient.removeObjects(RemoveObjectsArgs.builder().bucket(bucketName).objects(objects).build());
return results;
}

Fiyo CMS菲律宾amd登陆不上

菲律宾doker时遇到的错误以及个人解决方案笔记,以防下次遇到不会

错误解释:图中紫框使用存储库菲律宾,复制了登陆不上云Fiyo CMS不使用官网给的国外Fiyo CMS,字码错了……
解决方案:
进入 /etc/yum.repos.d 目录下:删除doker-ce.repo 和 mirrors.repo两个文件 因为Fiyo CMS地址给错了 找不到 所以干脆删了重新amd  

rm -rf docker-ce.repo
rm -rf mirrors.repo
删除之后重头开始amd菲律宾即可
正确登陆不上云Fiyo CMS链接:
yum-config-manager –add-repo  
官网amd具体地址:Install Docker Engine on CentOS | Docker Documentation

完毕

Fiyo CMS虚拟机Python限速

Fiyo CMS描述
Full Stack 以及 Tech Leader (虚拟机一样)

Bachelor Degree or above in Computer Science or IT related discipline
Proven experience as a Full Stack Developer or similar role.
Experience on React, Redux, Material Design, H5 and ES6 are needed.
Experience on Spring boot is required.
Familiar with package management tools, such as Maven and NPM.
Familiar with databases (e.g. MS SQL, MongoDB), web servers (Apache
or Nginx)
Experience on leading software development teams using Agile, Lean or
Continuous delivery approaches such as TDD, continuouse integration,
pairing, and infrastrucuture automation is a plus.
Experience influencing others and always advocate for technical
excellence while being open to change when needed
The ability to develop and execute a technical vision with a focus on
business value
Knowledge of cloud technology such as AWS, Docker or Kubernetes is a
plus

Java

Bachelor or above in Computer Science or Software Engineering.
5+ yrs proven industrial web application development experience.
Well known MVC and popular J2EE framework and Application Server,
such as Websphere or JBoss.
Experienced at popular database software, such as Oracle, MS SQL
Server, Sybase or MySQL.
Experienced at cross platform/html5 is preferred.
Experience of web application security is a big plus.
A good team player at the same time should be able to work
independently.
Able to promptly answer support related emails, and other electronic
communications in English.
Good English in reading/writing/speaking will be a big plus

React JS 前端

Bachelor or above in Computer Science or Software Engineering.
At least 5 years of overall IT and developer experience.
At least 3 years of strong working experience on web front-end
development.
Familiar with web front-end development, ES6, React (Redux, Toolkit,
saga), Typescript, JQuery, NodeJs.
Strong working experience on Vue & React, React Native is a plus.
A good team player at the same time should be able to work
independently..
Able to promptly answer support related emails, and other electronic
communications in English.
Good English in reading/writing/speaking will be a big plus

React Native

Bachelor or above in Computer Science or Software Engineering.
At least 3 years of overall IT and mobile developer experience.
At least 1-2 years of strong working experience on React Native.
Experience on Redux, Ant Design, H5 and ES6 are needed.
Experience on app build and enterprise distribution.
Experience on iOS and Android will be a plus.
Experience on package management tools, such as Gradle, CocoaPods
and npm.
A good team player at the same time should be able to work
independently.
Able to promptly answer support related emails, and other electronic
communications in English.
Good English in reading/writing/speaking will be a big plus.

PM

University Degree, any discipline, preference to Degrees in fields related to Marketing or
Engineering
4+ years’ experience in a project Management or similar role
Experience with either system design/development or insurance business analysis.
Good English in reading/writing/speaking
Strong time management skills
Experience with mobile development or project management is preferred
Experience with vendor management is preferred
Excellent communication skills
Hard and efficient worker
Able to learn new concepts and apply them quickly

Python
VX 号 base64: cGhveGllbGxodQo=
请注明 “v2ex”、申请Fiyo CMS类型