使用apisix代理静态文件

前言

  最近公司考虑用apisix作为公司网关并且部署到k8s上,我这边收到一个小任务:使用apisix代理静态文件
  通过apisix官网了解到它构建于 NGINX + ngx_lua 的技术基础之上,所以按理应该和nginx代理静态资源是一样的。因为是通过docker容器部署的,需要考虑将静态资源路径挂载出来。
使用apisix代理静态文件_第1张图片

操作步骤

创建持久卷声明

  1. 通过kubesphere创建持久卷声明
    使用apisix代理静态文件_第2张图片
  2. 在存储设置中选择通过存储类创建,存储类选择local
    使用apisix代理静态文件_第3张图片
  3. 创建完后此时的状态为等待中,持久卷此时还未生成
    使用apisix代理静态文件_第4张图片

apisix负载挂载卷

  1. 编辑设置apisix负载
  2. 存储设置选择上面的持久卷声明,apisix挂载对应的容器目录(注意:这个挂载的容器路径与持久卷路径是一一对应关系
    使用apisix代理静态文件_第5张图片
  3. 等待apisix重启成功后,切换存储->持久卷声明界面查看此时状态为已绑定并且生成了持久卷
    使用apisix代理静态文件_第6张图片
  4. 查看持久卷的路径
    使用apisix代理静态文件_第7张图片

apisix设置静态资源路由

  1. 在config.yaml中添加自定义路由(apisix会根据config.yaml配置最终生成nginx.conf)
  2. 补充nginx相关语法知识
    server {
        // 配置的路径+完整访问路径(完整的location配置路径+静态文件)
        // 响应http://localhost/about/example.html请求时,nginx将发送/data/www/about/example.html文件
        location / {
            root /data/www;
        }
    
      	// 配置路径+静态文件(去除location中配置的路径)
        location /images/ {
            alias /data;
        }
    }
    

结果验证

  1. 在apisix负载挂载卷后会自动生成对应挂载目录
    使用apisix代理静态文件_第8张图片
  2. 当持久卷被应用绑定后,在应用上的机器会生成对应持久卷目录
    在这里插入图片描述
  3. 在持久卷路径中添加静态资源,容器挂载的目录会生成对应静态资源
    使用apisix代理静态文件_第9张图片
    在这里插入图片描述
  4. 通过apisix直接访问静态资源
    使用apisix代理静态文件_第10张图片

你可能感兴趣的:(云原生,lua,java,开发语言)