Open i18nsite opened 4 hours ago
1、变量未支持子域名,因此请求重写也无法支持此类型,有nginx或者其它的示例,我参考一下它们的规则实现
2、缓存可以cache插件可以实现,建议使用短缓存的cache-control
,若使用较为长时间的缓存,则需要主动通过purge
来清除
3、admin管理后台就是使用接口更新配置,可以每次覆盖location的配置
4、持久化现只支持文件或者etcd的形式存储,如果是多机器部署,建议单独创建cp节点用于配置,其它实例监听配置更新执行upgrade即可
5、不支持,现只能自己去刷新配置中的证书配置。此类处理有否标准的处理方式,如果有可以提供我参考
6、若配置为使用let's encrypt,在证书要过期时会自动刷新。若是在配置中直接配置证书对应的pem数据,在配置更新时也会自动刷新(无中断式)
最后感谢你愿意尝试使用pingap,暂时pingap还只是个人业务开发,可能还会有较多的调整,尽量在1.0版本之前保证调整时的兼容性。
server {
listen 80;
server_name ~^(?<subdomain>.+)\.yourdomain\.com$;
root html/$subdomain;
主动通过purge来清除这个现在有文档吗?(也可以作为一个trait暴露出来,这样我可以干脆在程序内部用拉的方式实现监听更新列表,自动purge)
这个配置存储和加载能抽象出一个trait吗?我可以写一个支持redis库实现这个trait,作为一个feature按需启用(我觉得应该有这么3个接口,第一个是启动加载,第二个保存,第三个是一个参数为添加配置回调函数的更新函数,方便用来做监听部分配置的更变并更新)
证书生成的保存、加载和过期更新也能给一个trait吗? 我可以来实现它。 因为如果服务器比较多,没必要每个都申请一次,let's encrypt也有访问频率的限制。另外我可以定制一些逻辑,比如支持泛域名证书(因为我打算每个托管文档用独立的子域名,这样没必要每个文档都申请一个证书,我可以用acme.sh生成好了之后,这里就只负责加载就好)。
现在rust支持异步的trait了,感觉这种接口应该都是async的 ( Rust 1.75带来的async traits支持 )
我希望可以方便提供一些二次开发的trait、hook, 这样我可以按我的需求定制一些逻辑,并作为feature合并到pingap中去
在时间上,因为我可能还需要等1-2个月才有空写这个托管平台,所以没那么紧迫,我就想能提前商量好一些方便我二次开发的trait,我可以在这个基础上去定制需求。
我在开发一个基于机器翻译的markdown文档做国际化的工具( https://i18n.site )。
接下来,我想做一个文档托管的平台(类似 https://about.readthedocs.com )
我想选一个rust写的服务器,方便二次开发。
我之前也提过一些问题
https://github.com/vicanso/pingap/issues/30#issuecomment-2333174071
今天想进一步探讨下pingap用来做文档托管平台的可行性(我比较刚需的一些特性)。
我会把文件会放在对象存储上,如果前面用pingap反向代理,可能需要以下的特性。
https://upsteam/abc/index.html
这个怎么做,我看了Upsteam的文档没搞明白
代理缓存和清理代理缓存(不用频繁的访问后面的对象存储,用户更新文档,我需要刷新对应的缓存)
我想支持用户用cname绑定自己的域名,有没有办法动态地用api添加域名和对应的重写规则。
持久化配置可以支持从redis中读取吗(并且支持SELECT数据库)?(我没搭建etcd,用redis比较方便)
另外,就是如果有多台pingap服务器,有办法让他们共享配置吗(比如,一台能写入,其他只读),然后用redis stream ( https://redis.io/docs/latest/develop/data-types/streams/ ) 通知配置的更新。
因为用户绑定域名都需要不同的https证书 我会把证书放在一个https网址上(比如 https://user:password@xxx.com/abc.com.cert) 有没有办法通过某种方式当pingap发现本地缓存的域名证书不存在(或者过期)的时候,从网址尝试加载域名证书
我对rust代码比较熟悉,不过还没研究过pingap的代码,也许可以参与部分功能的二次开发,添加这些功能。
不过目前还有一些其他需求在开发,可能需要1-2月后才能进入这个托管平台的开发。
等托管平台做好之后,也可以帮忙做一些pingap文档国际化的相关工作( https://fcdoc.github.io 这是我最近给朋友做的一个文档国际化的演示 )