nginx playground

Go 发布就带有 https://play.golang.org/,Rust 发布也有 https://play.rust-lang.org/。你想过 Nginx 也有一个 playground 吗
https://nginx-playground.wizardzines.com

这个网站使用的技术如下:



1)前端使用 vue.js 和 tailwind;



2)后端就一个 API endpoint,使用 Go 语言构建。它只做 1 件事,即运行 Nginx 配置。



后端的完整代码见这里:https://gist.github.com/jvns/edf78e7775fea8888685a9a2956bc477。



当你单击“Run”时,Go 后端会执行以下操作:



将配置写入临时文件
创建一个新的网络命名空间 ( ip netns add $RANDOM_NAMESPACE_NAME)
在端口 777 上启动 go-httpbin,以便可以在 nginx 配置中使用它作为 backend(如上面截图中的 proxy_pass 地址)
启动 Nginx
等待 100 毫秒以确保 nginx 启动完成,如果失败则将 nginx 的错误日志返回给客户端
运行用户请求的命令(并确保命令以curl或开头http)
返回命令的输出
完毕



https://mp.weixin.qq.com/s/LL11TpXZjAYVdebc3wQR1w


Category golang