Skip to content

Commit d716bbd

Browse files
vkillmoonming
authored andcommitted
Add example (apache#4)
1 parent 683bf9b commit d716bbd

File tree

11 files changed

+317
-0
lines changed

11 files changed

+317
-0
lines changed

example/.gitignore

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
/apisix_log/*
2+
!/apisix_log/.keep
3+
4+
/etcd_data/*
5+
!/etcd_data/.keep

example/README.md

Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
### Run
2+
3+
```
4+
$ docker-compose -p docker-apisix up -d
5+
```
6+
7+
### Configure
8+
9+
```
10+
curl http://127.0.0.1:9180/apisix/admin/services/1 -X PUT -d '
11+
{
12+
"upstream": {
13+
"type": "roundrobin",
14+
"nodes": {
15+
"127.0.0.1:9081": 1
16+
}
17+
}
18+
}'
19+
20+
curl http://127.0.0.1:9180/apisix/admin/services/2 -X PUT -d '
21+
{
22+
"upstream": {
23+
"type": "roundrobin",
24+
"nodes": {
25+
"127.0.0.1:9082": 1
26+
}
27+
}
28+
}'
29+
30+
curl http://127.0.0.1:9180/apisix/admin/routes/11 -X PUT -d '
31+
{
32+
"uri": "/",
33+
"host": "web1.lvh.me",
34+
"service_id": "1"
35+
}'
36+
37+
curl http://127.0.0.1:9180/apisix/admin/routes/12 -X PUT -d '
38+
{
39+
"uri": "/{:.*}",
40+
"host": "web1.lvh.me",
41+
"service_id": "1"
42+
}'
43+
44+
curl http://127.0.0.1:9180/apisix/admin/routes/21 -X PUT -d '
45+
{
46+
"uri": "/",
47+
"host": "web2.lvh.me",
48+
"service_id": "2"
49+
}'
50+
51+
curl http://127.0.0.1:9180/apisix/admin/routes/22 -X PUT -d '
52+
{
53+
"uri": "/{:.*}",
54+
"host": "web2.lvh.me",
55+
"service_id": "2"
56+
}'
57+
58+
curl http://127.0.0.1:9180/apisix/admin/ssl/1 -X PUT -d "
59+
{
60+
\"cert\": \"$( cat './mkcert/lvh.me+1.pem')\",
61+
\"key\": \"$( cat './mkcert/lvh.me+1-key.pem')\",
62+
\"sni\": \"lvh.me\"
63+
}"
64+
65+
curl http://127.0.0.1:9180/apisix/admin/ssl/2 -X PUT -d "
66+
{
67+
\"cert\": \"$( cat './mkcert/lvh.me+1.pem')\",
68+
\"key\": \"$( cat './mkcert/lvh.me+1-key.pem')\",
69+
\"sni\": \"*.lvh.me\"
70+
}"
71+
```
72+
73+
### Test
74+
75+
```
76+
curl http://web1.lvh.me:9080/ -v # web1.txt
77+
curl http://web1.lvh.me:9080/web1.txt -v # web1
78+
79+
curl http://web2.lvh.me:9080/ -v # web2.txt
80+
curl http://web2.lvh.me:9080/web2.txt -v # web2
81+
```
82+
83+
```
84+
curl https://web1.lvh.me:9443/ -v --cacert ./mkcert/rootCA.pem
85+
```
86+
87+
### Clean
88+
89+
```
90+
$ docker-compose -p docker-apisix down
91+
92+
$ sudo rm -rf etcd_data/member
93+
94+
$ rm -rf apisix_log/*.log
95+
```

example/apisix_conf/config.yaml

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
apisix:
2+
node_listen: 9080
3+
node_ssl_listen: 9443
4+
enable_heartbeat: true
5+
enable_admin: true
6+
enable_debug: true
7+
allow_admin:
8+
- 127.0.0.1/24
9+
port_admin: 9180
10+
real_ip_header: "X-Real-IP"
11+
real_ip_from:
12+
- 127.0.0.1
13+
route_idx: 'uri'
14+
15+
etcd:
16+
host: "http://127.0.0.1:2379"
17+
prefix: "/apisix"
18+
timeout: 1
19+
20+
plugins:
21+
- example-plugin
22+
- limit-req
23+
- limit-count
24+
- key-auth
25+
- prometheus
26+
- limit-conn
27+
- node-status

example/apisix_log/.keep

Whitespace-only changes.

example/docker-compose.yml

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
version: '3'
2+
3+
services:
4+
apisix:
5+
build:
6+
context: ./..
7+
dockerfile: alpine/Dockerfile
8+
args:
9+
APISIX_GITHUB_REPO: https://github.com/iresty/apisix
10+
APISIX_VERSION: master
11+
APISIX_DOWNLOAD_SHA256: SKIP
12+
restart: always
13+
volumes:
14+
- ./apisix_log:/usr/local/apisix/logs
15+
- ./apisix_conf/config.yaml:/usr/local/apisix/conf/config.yaml:ro
16+
depends_on:
17+
- etcd
18+
network_mode: host
19+
20+
etcd:
21+
image: gcr.io/etcd-development/etcd
22+
command: /usr/local/bin/etcd --advertise-client-urls http://0.0.0.0:2379 --listen-client-urls http://0.0.0.0:2379
23+
restart: always
24+
volumes:
25+
- ./etcd_data:/etcd_data
26+
environment:
27+
ETCD_DATA_DIR: /etcd_data
28+
ports:
29+
- "127.0.0.1:2379:2379/tcp"
30+
networks:
31+
- apisix
32+
33+
web1:
34+
image: ruby:2-alpine
35+
command: sh -c "mkdir -p /tmp/www && echo 'web1' > /tmp/www/web1.txt && ruby -run -ehttpd /tmp/www -p8000"
36+
restart: always
37+
ports:
38+
- "127.0.0.1:9081:8000/tcp"
39+
networks:
40+
- apisix
41+
42+
web2:
43+
image: ruby:2-alpine
44+
command: sh -c "mkdir -p /tmp/www && echo 'web2' > /tmp/www/web2.txt && ruby -run -ehttpd /tmp/www -p8000"
45+
restart: always
46+
ports:
47+
- "127.0.0.1:9082:8000/tcp"
48+
networks:
49+
- apisix
50+
51+
networks:
52+
apisix:
53+
driver: bridge

example/etcd_data/.keep

Whitespace-only changes.

example/mkcert/README.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
### Ref
2+
3+
https://github.com/FiloSottile/mkcert
4+
5+
### Copy CA
6+
7+
```
8+
cp $(mkcert -CAROOT)/rootCA.pem .
9+
10+
cp $(mkcert -CAROOT)/rootCA-key.pem .
11+
```
12+
13+
### Create certificate
14+
15+
```
16+
$ mkcert lvh.me "*.lvh.me"
17+
```

example/mkcert/lvh.me+1-key.pem

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
-----BEGIN PRIVATE KEY-----
2+
MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQCq5TJwEHgVNaft
3+
kU+mytN8gNInFJCU05YfZO8w6yIbeYR4dvdUgfXhDjxb8ZcWfzC7qfpKFAeA0X0l
4+
yHdOYmI6ONhuYW4C4ssaaiIJjnUI0ogHKYtCKPNppU0cRjdnSKWopv9QXZ9UHoRX
5+
zDcHcUnRhL0I057tfZrPAr1X0eMVEKTSUoFVS/nRvuQiOYitiSnSONEpYEAdmGG3
6+
vWxvW1BI9qi4UxXK6IcNF3HUwM20oAAF+5r+3vT+zG04tKfoJfwHoevWKS5V2Rz1
7+
xVW/O8LWKzE1Hl5GHGPXuhZUVDEIIFIV8D67h6dT4BGMS6pUjm0HyfNAdIEHHB4d
8+
RX+RDK75AgMBAAECggEBAKP0Lhabhkl657ghMBSqBIovIO+DaE6QTDekY2JAQ8Gu
9+
LKxSHmmCIX4gZUIknrpjnkJ9CfZmDujEktdb4zJdazXGccY8TQoRwZ9+8VbPyHKF
10+
YSHV9perqBPUFg2pQ+AgL2aFiO72UzSl7nw5HRZT1ule+ujr9k6MsagnTbZiVAVR
11+
F0Lxi7QZc0PQH4tLItkAM3eujUUR+lM0pNhdVqvm2XrNANb423uz1TUvDCXe/1Wb
12+
b7hRYIQEdXY4b3+Emi3SNMtGGBIOaNSQIgXC6s9AezTno5oWj3I5B+AGSD9VmWoK
13+
89iQtFtW1xXjCWM0ZAqH+4b7pmlbUFuv40BqLpUYiAECgYEAw6HfyDoMXaU1q9Yg
14+
xprSQQOrflk24ngCO5HISyEH2ZDeUWkqsOECFhkslJuJewkQfvjBza3Iee3IpJPQ
15+
CnvOtSfnV0YQM7RctVVXmwwgVGd35GeqIM5un3r1LgRslBWpsBkOYQVrPSHnHy7v
16+
f1t/RQHcil08pCl6kyzBS/EGefkCgYEA36Ez8vPjUoWyoFcpFJha/vC8o7Ay4SQ6
17+
kSUhWOLQaA8Oy3BLIH0YI6EpZvHYTtQFTCFhMfTLJpD/M0hmFHQvbhGpvB4Zi6G6
18+
+4GtIi+hgZ7DB86MdKRpQzELPy9JuxYavOUMlMsel2UTAPCfGn3SIJjEkfxo/t0E
19+
8Ct0Z2sdHQECgYALosMmq500rLDmiZPlfCvpRgibOT80dSLc3Cznmw1WeXFfsjuh
20+
zaBMJC8sn5urv7xFcRJF44I7DlOSxl/nX7nJuJff7wDjsmSZPHw7cpsxqf3NjgTm
21+
cqDNx4hxtj2nCSrQmIzsZGAegLe4eRgxoQWO2y9841LKCNWLj2vn0mwqMQKBgQCr
22+
/6qbBGYlBFvc4uzfwEbMqpAMPesEKv84v5wkZ17vihVQ929w74XvcXcMjJpYFs50
23+
PYAqEiNl6EPAR8DrnmkUeVVZMLVpJd1Qr+5fys6niVpr2LtCw2mKmmASGubUlC3A
24+
d1Lz5j4DJ2Q0Zt2YXImPNLCLr915mLjBmEqReFsOAQKBgQCtuwlhmOE43jGKP5RJ
25+
Ow5KhZze1gX4EA3HQOYRUE3psuzIesUEcDOvoCE/iWo22uNieqpBbXKi0CrtR6/6
26+
SopgMSPkNrrKDvbrM2azvdD85hoPmoYjEuyWTDJReqCzNxbHeri5Yo0/pcDqWSb3
27+
49RDuXS9aIj3PjFtsqQFXbfugg==
28+
-----END PRIVATE KEY-----

example/mkcert/lvh.me+1.pem

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
-----BEGIN CERTIFICATE-----
2+
MIIEKjCCApKgAwIBAgIQJ7+tTZRECIp1/rZvizFsADANBgkqhkiG9w0BAQsFADBl
3+
MR4wHAYDVQQKExVta2NlcnQgZGV2ZWxvcG1lbnQgQ0ExHTAbBgNVBAsMFHJvb3RA
4+
dmtpbGwtYXJjaGxpbnV4MSQwIgYDVQQDDBtta2NlcnQgcm9vdEB2a2lsbC1hcmNo
5+
bGludXgwHhcNMTkwNzE3MDA1NTMwWhcNMjkwNzE3MDA1NTMwWjBIMScwJQYDVQQK
6+
Ex5ta2NlcnQgZGV2ZWxvcG1lbnQgY2VydGlmaWNhdGUxHTAbBgNVBAsMFHJvb3RA
7+
dmtpbGwtYXJjaGxpbnV4MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA
8+
quUycBB4FTWn7ZFPpsrTfIDSJxSQlNOWH2TvMOsiG3mEeHb3VIH14Q48W/GXFn8w
9+
u6n6ShQHgNF9Jch3TmJiOjjYbmFuAuLLGmoiCY51CNKIBymLQijzaaVNHEY3Z0il
10+
qKb/UF2fVB6EV8w3B3FJ0YS9CNOe7X2azwK9V9HjFRCk0lKBVUv50b7kIjmIrYkp
11+
0jjRKWBAHZhht71sb1tQSPaouFMVyuiHDRdx1MDNtKAABfua/t70/sxtOLSn6CX8
12+
B6Hr1ikuVdkc9cVVvzvC1isxNR5eRhxj17oWVFQxCCBSFfA+u4enU+ARjEuqVI5t
13+
B8nzQHSBBxweHUV/kQyu+QIDAQABo3MwcTAOBgNVHQ8BAf8EBAMCBaAwEwYDVR0l
14+
BAwwCgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADAfBgNVHSMEGDAWgBSYvVgP4gOX
15+
oeisL5WsQbGN4B9BZTAbBgNVHREEFDASggZsdmgubWWCCCoubHZoLm1lMA0GCSqG
16+
SIb3DQEBCwUAA4IBgQBAuqUCOe4dYs5Wx6R99c2W+OoeyxN8RYLK8IJkUnuqzLIk
17+
REzYuAzO99McMe61nc0s5obsVGOyhchj101Y22Roq9W6IMo5xMxtnjHBuFhMHUKL
18+
np6U2hcd73u68q/dgq9+tQk1UhTJGVkZKr7E5FAr5Lh9ge3p+6xoc2czMGaoHKge
19+
jcCT+nPE73Nec17LUSZhqcxlzzXIrLubi0W8IrkCoDWQYnV8HjuigpSuclAI2Pet
20+
GD/fi6w0sERsSG2VFRA56j17l27LqFfHtz1GWMJGh7cQ+GOGe8Wviiskz5tZEQTw
21+
y2q2CFwx9MxzBk5mO8zG4pnYhB/UMeLHiTJO4WeLP8uVkEyzckc1INsgw6Kit2oZ
22+
hQDoHunZ7y/RfL/8xj78nya58YZ6oaf+EDVqA+JPhbAZEFC+U9+BYLmr5eB31DNc
23+
NfeqlIybQ1xrj42QRUTGPIwfl6lwGu4L63WKVfSOOEWkx1yB/x5vUYmWK4Vub+Gs
24+
rwqoluFp44oNMY+uy9w=
25+
-----END CERTIFICATE-----

example/mkcert/rootCA-key.pem

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
-----BEGIN PRIVATE KEY-----
2+
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
39+
2Hqwp0dr/cxfVFXcD8fa9Q==
40+
-----END PRIVATE KEY-----

0 commit comments

Comments
 (0)