bind
覆寫伺服器 socket 應繫結到的介面。
通常,偵聽器會繫結到空的(萬用字元)介面。但是,您可以強制偵聽器繫結到另一個主機名稱或 IP。此指令僅接受主機,不接受埠。埠是由 網站地址 決定(預設為 443
)。
請注意,不一致地繫結網站可能會導致意外後果。例如,如果同一個埠上的兩個網站解析為 127.0.0.1
,且其中只有一個網站設定為 bind 127.0.0.1
,則只會有一個網站可以存取,因為另一個網站會在沒有特定主機的情況下繫結到埠;作業系統會選擇更具體的配對 socket。(虛擬主機不會在不同的偵聽器之間共用。)
bind
接受 網路地址,但可能不包含埠。
語法
bind <hosts...>
- <主機...> 是要繫結偵聽器的主機介面清單。
範例
若要讓 socket 只能在目前機器上存取,請繫結到迴圈介面(本機端)
example.com {
bind 127.0.0.1
}
若要包含 IPv6
example.com {
bind 127.0.0.1 [::1]
}
若要繫結到 10.0.0.1:8080
example.com:8080 {
bind 10.0.0.1
}
要繫結到 Unix 域套接字於 /run/caddy
example.com {
bind unix//run/caddy
}
要變更檔案權限,讓所有使用者可寫入(預設為 0200
,僅有擁有者可寫入)
example.com {
bind unix//run/caddy|0222
}
要繫結一個網域到兩個不同的介面,並有不同的回應
example.com {
bind 10.0.0.1
respond "One"
}
example.com {
bind 10.0.0.2
respond "Two"
}