apisix安裝

文章目的:對(duì)apisix安裝與日志配置過(guò)程進(jìn)行進(jìn)路。

安裝

#apisix安裝
docker-compose up -d
#apisix-dashboard安裝
docker run -d --name dashboard \
           --network=example_apisix \
           -p 9000:9000        \
           -v /home/wuqf/gateway/apisix/apisix-docker/all-in-one/apisix-dashboard/conf.yaml:/usr/local/apisix-dashboard/conf/conf.yaml \
           apache/apisix-dashboard

創(chuàng)建上游

#創(chuàng)建上游
curl "http://127.0.0.1:9180/apisix/admin/upstreams/1" \
-H "X-API-KEY: edd1c9f034335f136f87ad84b625c8f1" -X PUT -d '
{
  "type": "roundrobin",
  "nodes": {
    "httpbin.org:80": 1
  }
}'
#創(chuàng)建路由
curl "http://127.0.0.1:9180/apisix/admin/routes/1" \
-H "X-API-KEY: edd1c9f034335f136f87ad84b625c8f1" -X PUT -d '
{
  "methods": ["GET"],
  "host": "example.com",
  "uri": "/anything/*",
  "upstream_id": "1"
}'
#訪問(wèn)
curl -i -X GET "http://127.0.0.1:9080/anything/get?foo1=bar1&foo2=bar2" -H "Host: example.com"

日志配置

#開(kāi)啟kafka log插件
curl -i "http://127.0.0.1:9180/apisix/admin/routes" \
-H "X-API-KEY: edd1c9f034335f136f87ad84b625c8f1" -X PUT -d '
{
    "plugins": {
       "kafka-logger": {
           "brokers" : [
             {
               "host" :"10.246.1.152",
               "port" : 9092
             }
            ],
           "kafka_topic" : "kg-log",
           "key" : "key1",
           "batch_max_size": 1,
           "name": "kafka logger"
       }
    },
  "id": "getting-started-ip",
  "uri": "/ip",
  "upstream": {
    "type": "roundrobin",
    "nodes": {
      "10.53.207.10:8080": 1
    }
  }
}'
curl "http://127.0.0.1:9080/ip"
##開(kāi)啟插件并記錄request與reponse
#開(kāi)啟kafka log插件
curl -i "http://127.0.0.1:9180/apisix/admin/routes" \
-H "X-API-KEY: edd1c9f034335f136f87ad84b625c8f1" -X PUT -d '
{
    "plugins": {
       "kafka-logger": {
           "brokers" : [
             {
               "host" :"10.246.1.152",
               "port" : 9092
             }
            ],
           "kafka_topic" : "kg-log",
           "key" : "key1",
           "batch_max_size": 1,
           "name": "kafka logger",
           "include_req_body":true,
           "include_resp_body":true
       }
    },
  "id": "getting-started-ip",
  "uri": "/apisix/*",
  "upstream": {
    "type": "roundrobin",
    "nodes": {
      "10.53.207.10:8080": 1
    }
  }
}'
curl "http://127.0.0.1:9080/apisix/ip"
#日志格式配置
curl http://127.0.0.1:9180/apisix/admin/plugin_metadata/kafka-logger -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
{
  "log_format": {
    "host": "$host",
    "@timestamp": "$time_iso8601",
    "client_ip": "$remote_addr",
    "request_uri":"$request_uri",
    "request_body":"$request_body",
    "response _body":"$resp_body"
  }
}'

負(fù)載均衡

curl -i "http://10.53.207.10:9180/apisix/admin/routes" -X PUT -d '
{
  "id": "getting-started-headers",
  "uri": "/headers",
  "upstream" : {
    "type": "roundrobin",
    "nodes": {
      "httpbin.org:443": 1,
      "mock.api7.ai:443": 1
    },
    "pass_host": "node",
    "scheme": "https"
  }
}'

hc=$(seq 100 | xargs -I {} curl "http://10.53.207.10:9080/headers" -sL | grep "httpbin" | wc -l); echo httpbin.org: $hc, mock.api7.ai: $((100 - $hc))
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容