docker run -d --name apache-apisix \
-p 9080:9080 \
-e APISIX_STAND_ALONE=true \
apache/apisix
這個指令使用 docker run
啟動 Apache APISIX 容器,以下是指令的重點解說:
-d
: 這個參數表示容器會以「後台模式」運行,也就是說,容器會在背景執行,讓你不必等待它的輸出結果。
--name apache-apisix
: 這個參數為容器命名為 apache-apisix
,以便你在管理 Docker 容器時可以輕鬆地識別它。
-p 9080:9080
: 這是「端口映射」的設定,將宿主機的 9080 端口映射到容器內的 9080 端口。APISIX 的預設 HTTP 端口是 9080,這樣可以讓你從宿主機的瀏覽器或其他服務連接到 APISIX。
-e APISIX_STAND_ALONE=true
: 使用環境變數 APISIX_STAND_ALONE=true
啟用「獨立模式」。在這種模式下,APISIX 不會依賴 etcd 來存儲配置,所有的路由與插件配置將從本地配置文件中讀取,適合輕量級或單機部署。
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 容器內進行配置更新,以下是指令的重點解說:
docker exec -i apache-apisix
: 使用 docker exec
在名為 apache-apisix
的容器內執行一個命令。-i
表示這個命令是交互式的(stdin 會保持開啟),以便可以向容器內輸入數據。
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_
這個標記為止,將其內容寫入指定文件。配置內容(routes & plugin_configs):
routes:
id: httpbin
定義了路由的唯一標識符。uri: /*
指定匹配所有路徑的 URI。upstream
定義上游服務,其中 "httpbin.org": 1
表示將流量負載均衡到 httpbin.org
,使用 roundrobin
算法分發流量。plugin_configs:
id: 1
指定插件配置的唯一 ID。response-rewrite
: 這個插件會重寫 HTTP 回應的 body,將其改為 "Hello APISIX\n"
。desc: "response-rewrite"
是對插件配置的簡短描述。_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 請求,以下是指令的詳細解說:
curl
: 這是一個命令行工具,用於發送 HTTP 請求並顯示伺服器的響應。它可以用來測試 API 或網頁服務。
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 是否正確處理請求並應用相應的插件和路由配置。