文件
一個 專案

respond

寫入硬編碼/靜態回應給客戶端。

如果主體非空,此指令會在 Content-Type 標頭尚未設定時設定它。預設值為 text/plain; utf-8,除非主體是有效的 JSON 物件或陣列,否則會設定為 application/json。對於所有其他類型的內容,請使用 header 指令 明確設定適當的 Content-Type。

語法

respond [<matcher>] <status>|<body> [<status>] {
	body <text>
	close
}
  • <狀態> 是要寫入的 HTTP 狀態碼。

    如果為 103(早期提示),回應會在沒有主體的情況下寫入,處理器鏈會繼續。(HTTP 1xx 回應是資訊性的,不是最終的。)

    預設值:200

  • <主體> 是要寫入的回應主體。

  • body 是提供主體的另一種方式;如果有多行,會很方便。

  • close 會在寫入回應後關閉客戶端與伺服器的連線。

澄清一下,第一個非比對器參數可以是 3 位數狀態碼或回應主體字串。如果是主體,下一個參數可以是狀態碼。

範例

對所有健康檢查寫入一個空 200 狀態,並對所有其他要求寫入一個簡單的回應主體

example.com {
	respond /health-check 200
	respond "Hello, world!"
}

寫入一個錯誤回應並關閉連線

example.com {
	respond /secret/* "Access denied" 403 {
		close
	}
}

使用 heredoc 語法 來控制空白,並設定 Content-Type 標頭以符合回應主體,寫入一個 HTML 回應

example.com {
	header Content-Type text/html
	respond <<HTML
		<html>
			<head><title>Foo</title></head>
			<body>Foo</body>
		</html>
		HTML 200
}