The HTTP Proxy case demonstrates Pixiu’s ability to receive external HTTP requests and forward them to the underlying HTTP Server.
For the case code, please refer to /samples/http/simple
. The directory structure and purpose in the case are as follows:
- pixiu # Pixiu configuration file
- server # http server
- test # client or unit test
Let’s take a closer look at the specific configuration file for pixiu.
static_resources:
listeners:
- name: "net/http"
protocol_type: "HTTP" # Use HTTP Listener
address:
socket_address:
address: "0.0.0.0" # Set the listening address to 0.0.0.0
port: 8888 # Set port to 8888
filter_chains:
filters:
- name: dgp.filter.httpconnectionmanager # Set NetworkFilter to httpconnectionmanager
config:
route_config:
routes:
- match:
prefix: "/user" # Set routing rules to forward requests with /user prefix to the cluster named user
route:
cluster: "user"
cluster_not_found_response_code: 505
http_filters:
- name: dgp.filter.http.httpproxy # Use dgp.filter.http.httpproxy for forwarding
config:
clusters:
- name: "user" # Configure a cluster named user with one instance at address 127.0.0.1:1314
lb_policy: "random"
endpoints:
- id: 1
socket_address:
address: 127.0.0.1
port: 1314
First, start the Http Server in the Server
folder and then use the following command to start Pixiu
. Finally, execute the unit tests in the test folder. Note that -c should be followed by the absolute path of the local configuration file.
pixiu gateway start -c /pixiu/conf.yaml