iT邦幫忙

2024 iThome 鐵人賽

DAY 5
0
IT 管理

API Gateway:微服務世界的守護者系列 第 5

Day05 - APISIX Build up command explain

  • 分享至 

  • xImage
  •  

啟動

docker run -d --name apache-apisix \
  -p 9080:9080 \
  -e APISIX_STAND_ALONE=true \
  apache/apisix 

這個指令使用 docker run 啟動 Apache APISIX 容器,以下是指令的重點解說:

  1. -d: 這個參數表示容器會以「後台模式」運行,也就是說,容器會在背景執行,讓你不必等待它的輸出結果。

  2. --name apache-apisix: 這個參數為容器命名為 apache-apisix,以便你在管理 Docker 容器時可以輕鬆地識別它。

  3. -p 9080:9080: 這是「端口映射」的設定,將宿主機的 9080 端口映射到容器內的 9080 端口。APISIX 的預設 HTTP 端口是 9080,這樣可以讓你從宿主機的瀏覽器或其他服務連接到 APISIX。

  4. -e APISIX_STAND_ALONE=true: 使用環境變數 APISIX_STAND_ALONE=true 啟用「獨立模式」。在這種模式下,APISIX 不會依賴 etcd 來存儲配置,所有的路由與插件配置將從本地配置文件中讀取,適合輕量級或單機部署。

  5. apache/apisix: 指定 Docker 使用 apache/apisix 映像來啟動 APISIX 服務。

這個指令的核心是在「獨立模式」下啟動 APISIX,簡化部署,適合小規模應用或測試環境。

注入

docker exec -i apache-apisix sh -c 'cat > /usr/local/apisix/conf/apisix.yaml <<_EOC_
routes:
  -
    id: httpbin
    uri: /*
    upstream:
      nodes:
        "httpbin.org": 1
      type: roundrobin
    plugin_config_id: 1

plugin_configs:
  -
    id: 1
    plugins:
      response-rewrite:
        body: "Hello APISIX\n"
    desc: "response-rewrite"
#END
_EOC_'

這個指令使用 docker exec 在運行中的 APISIX 容器內進行配置更新,以下是指令的重點解說:

  1. docker exec -i apache-apisix: 使用 docker exec 在名為 apache-apisix 的容器內執行一個命令。-i 表示這個命令是交互式的(stdin 會保持開啟),以便可以向容器內輸入數據。

  2. sh -c 'cat > /usr/local/apisix/conf/apisix.yaml <<_EOC_:

    • sh -c 是在容器內執行 shell 命令。
    • cat > /usr/local/apisix/conf/apisix.yaml 用來將後續的內容寫入到 /usr/local/apisix/conf/apisix.yaml 文件,這是 APISIX 的配置文件。
    • <<_EOC_ 表示這是一個多行文本的開始標記,會一直讀取到 _EOC_ 這個標記為止,將其內容寫入指定文件。
  3. 配置內容(routes & plugin_configs):

    • routes:

      • id: httpbin 定義了路由的唯一標識符。
      • uri: /* 指定匹配所有路徑的 URI。
      • upstream 定義上游服務,其中 "httpbin.org": 1 表示將流量負載均衡到 httpbin.org,使用 roundrobin 算法分發流量。
    • plugin_configs:

      • id: 1 指定插件配置的唯一 ID。
      • plugins:
        • response-rewrite: 這個插件會重寫 HTTP 回應的 body,將其改為 "Hello APISIX\n"
      • desc: "response-rewrite" 是對插件配置的簡短描述。
  4. _EOC_': 標誌著這段多行文本的結尾,這裡的 _EOC_ 表示結束符,告訴 shell 停止讀取多行輸入並完成寫入。

總結:

這個指令的目的是在 APISIX 容器內更新路由和插件配置,將所有進入的請求重定向到 httpbin.org,並且使用 response-rewrite 插件將回應內容改寫為 "Hello APISIX"。

確認啟動及注入成功與否

curl http://127.0.0.1:9080/

curl http://127.0.0.1:9080/ 這個指令的作用是使用 curl 命令向本地的 APISIX 服務發送一個 HTTP 請求,以下是指令的詳細解說:

  1. curl: 這是一個命令行工具,用於發送 HTTP 請求並顯示伺服器的響應。它可以用來測試 API 或網頁服務。

  2. http://127.0.0.1:9080/: 這是請求的 URL:

    • 127.0.0.1 是本地主機(localhost)的 IP 地址,代表你自己的機器。
    • 9080 是端口號,這裡指向 APISIX 的 HTTP 端口,這是預設的 APISIX 端口。
    • / 是資源路徑,表示向根路徑發送請求。

請求的目的

這個命令會發送一個 HTTP GET 請求到 APISIX。如果你之前配置的路由和插件運行正常,APISIX 會將這個請求轉發給 httpbin.org,並返回經過 response-rewrite 插件修改的回應內容,應該是 "Hello APISIX\n"

這可以用來測試 APISIX 是否正確處理請求並應用相應的插件和路由配置。


上一篇
Day04 - APISIX Build up
下一篇
Day06 - DNS & API Gateway
系列文
API Gateway:微服務世界的守護者24
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言