-
Notifications
You must be signed in to change notification settings - Fork 543
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: add try-paths plugins #1598
Conversation
|
||
| 名称 | 数据类型 | 填写要求 | 默认值 | 描述 | | ||
| -------- | -------- | -------- | -------- | -------- | | ||
| serviceSource | string | 必填 | - | 支持k8s,nacos,ip,dns | |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
只支持FQDN格式的serviceName就可以了,这样能简化下配置,不需要配serviceSource
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## main #1598 +/- ##
==========================================
+ Coverage 35.91% 43.52% +7.61%
==========================================
Files 69 76 +7
Lines 11576 12325 +749
==========================================
+ Hits 4157 5364 +1207
+ Misses 7104 6626 -478
- Partials 315 335 +20 |
|
||
| 名称 | 数据类型 | 填写要求 | 默认值 | 描述 | | ||
| -------- | -------- | -------- | -------- | -------- | | ||
| host | string | 必填 | - | FQDN格式的主机名称,比如<bucket name>.oss-cn-hangzhou.aliyuncs.com | |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
建议两个配置:
serviceHost 配 oss 域名
serviceName 配FQDN格式的服务名称(控制台服务列表看到的名字)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
可以参考 ext-auth 里 endpoint 配置项里的 service_host 和 service_name 的概念:https://higress.cn/docs/latest/plugins/authentication/ext-auth/
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
建议两个配置: serviceHost 配 oss 域名 serviceName 配FQDN格式的服务名称(控制台服务列表看到的名字)
好的
这个插件可以改名为 nginx-static-file,以 nginx location 的配置方式实现静态文件的代理(可能是到oss,或者后端的js服务) ,对nginx用户迁移会更有帮助一些: # 简化处理,按顺序匹配即可
locations:
- location: "~ ^/users/(.+\.(?:gif|jpe?g|png))$"
# 支持基于 alias 做正则路径改写
alias: "/data/w3/images/$1"
- location: "/images/"
# 支持基于 alias 改写目标文件目录
alias: "/data/w3/images/"
- location: "/images/"
# 支持基于 root 确定文件根目录
root: "/data/w3"
- location: "/images/"
root: "/data/w3"
# 支持基于 try_files 重试
try_files: "$uri /images/default.gif"
# 支持目录路径时,基于index查找文件
index index.html index.htm; |
|
||
| 名称 | 数据类型 | 填写要求 | 默认值 | 描述 | | ||
| -------- | -------- | -------- | -------- | -------- | | ||
| `service_name` | string | 必填 | - | 输入重试服务名称,带服务类型的完整 FQDN 名称,例如 `<bucket name>.oss-cn-hangzhou.aliyuncs.com` | |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
想了下不需要在插件里配置服务,直接获取给路由配置的服务就行了,插件里用 RouteCluster 代替 FQDNCluster:
type RouteCluster struct { |
Ⅰ. Describe what this PR did
add try-paths wasm go plugin to implement try_files function of nginx。
Ⅱ. Does this pull request fix one issue?
Fix the issue: Add support of try_files usage #840 .
Ⅲ. Why don't you add test cases (unit test/integration test)?
test cases be added in codes.
Ⅳ. Describe how to verify it
enable the plugin on the route, and check its retry function on envoy log or request response.
Ⅴ. Special notes for reviews
no