HTTP 代理案例展示了 Pixiu 接收外界 HTTP 请求然后转发给背后的 HTTP Server 的功能。
案例代码具体查看 /samples/http/simple。案例中的目录结构和作用如下所示:
/samples/http/simple
- pixiu # pixiu 配置文件 - server # http server - test # client or unit test
我们来具体看一下有关 pixiu 的具体配置文件。
static_resources: listeners: - name: "net/http" protocol_type: "HTTP" # 使用 HTTP Listener address: socket_address: address: "0.0.0.0" # 监听地址设置为 0.0.0.0 port: 8888 # 端口设置为 8888 filter_chains: filters: - name: dgp.filter.httpconnectionmanager # NetworkFilter 设置为 httpconnectionmanager config: route_config: routes: - match: prefix: "/user" # 设置路由规则,将 /user 前缀的请求转发给名称为 user 的 cluster 集群 route: cluster: "user" cluster_not_found_response_code: 505 http_filters: - name: dgp.filter.http.httpproxy # 使用 dgp.filter.http.httpproxy 这个 HttpFilter 来进行转发 config: clusters: - name: "user" # 配置一个名称为 user 的 集群,其中有一个实例,地址是 127.0.0.1:1314 lb_policy: "random" endpoints: - id: 1 socket_address: address: 127.0.0.1 port: 1314
可以先启动 Server 文件夹下的 Http Server,然后再使用如下命令启动 Pixiu,最后执行 test 文件夹下的单元测试。注意,-c 后是本地配置文件的绝对路径。
Server
Pixiu
pixiu gateway start -c /pixiu/conf.yaml