Http Proxy 案例介绍

HTTP 代理

HTTP 代理案例展示了 Pixiu 接收外界 HTTP 请求然后转发给背后的 HTTP Server 的功能。

Http Proxy 案例介绍 - 图1

案例代码具体查看 /samples/http/simple。案例中的目录结构和作用如下所示:

  1. - pixiu # pixiu 配置文件
  2. - server # http server
  3. - test # client or unit test

我们来具体看一下有关 pixiu 的具体配置文件。

  1. static_resources:
  2. listeners:
  3. - name: "net/http"
  4. protocol_type: "HTTP" # 使用 HTTP Listener
  5. address:
  6. socket_address:
  7. address: "0.0.0.0" # 监听地址设置为 0.0.0.0
  8. port: 8888 # 端口设置为 8888
  9. filter_chains:
  10. filters:
  11. - name: dgp.filter.httpconnectionmanager # NetworkFilter 设置为 httpconnectionmanager
  12. config:
  13. route_config:
  14. routes:
  15. - match:
  16. prefix: "/user" # 设置路由规则,将 /user 前缀的请求转发给名称为 user 的 cluster 集群
  17. route:
  18. cluster: "user"
  19. cluster_not_found_response_code: 505
  20. http_filters:
  21. - name: dgp.filter.http.httpproxy # 使用 dgp.filter.http.httpproxy 这个 HttpFilter 来进行转发
  22. config:
  23. clusters:
  24. - name: "user" # 配置一个名称为 user 的 集群,其中有一个实例,地址是 127.0.0.1:1314
  25. lb_policy: "random"
  26. endpoints:
  27. - id: 1
  28. socket_address:
  29. address: 127.0.0.1
  30. port: 1314

可以先启动 Server 文件夹下的 Http Server,然后再使用如下命令启动 Pixiu,最后执行 test 文件夹下的单元测试。注意,-c 后是本地配置文件的绝对路径。

  1. pixiu gateway start -c /pixiu/conf.yaml

最后修改 December 16, 2022: Fix check (#1736) (97972c1)