listen_addresses = 'localhost'
|
listen_addresses = '*'
|
listen_addresses = '0.0.0.0/0'
|
listen_addresses = 'localhost,127.0.0.1,10.140.0.2'
|
上面四種設置有何不同?
第一種設置,是原生 PostgreSQL 預設的,該設定使的資料庫不理會任何來自網路的請求。這種設置,實際使用狀況會在設置 pgBouncer 時,統一由他管理外部連線時會作這樣設定。
第二種狀況,是 EnterpriseDB 企業版預設的,也是一般常常使用的情況。這種設定,就會使資料庫直接聽取「任何」綁在這台主機上面的 IP,
第三種狀況,其實和第二種是一樣的,只是沒有列 IPv6 的,這樣子便無法聽取 IPv6 的網路。
最後一種狀況,則是限定資料庫聽取所列舉的 IP:在這裡便是限制在兩列 LoopBack IP,localhost 與 127.0.0.1;以及一個被綁在這台主機上面的子網路 IP,10.140.0.2。當一個主機有多個網路界面(例如,很多張網卡,或設置了一些虛擬 IP),就能利用使參數限制他的服務綁定的 IP。這種設定用正向表列,比較細緻,但是比較少人這樣設定。
雖然 Postgres 這樣算是能綁定 Listen Address,不過一般方便起見,都是設成第二項
listen_addresses = '*'
|
以便讓 PostgreSQL 可以用不同網路存取外部請求,再搭配 pg_hba.conf 進行過濾與管理~
以上功能的差異,可以自行變動一下,重新啟動再試著連線看看,就很明顯了。
參考資料:年代久遠不可考 .....
沒有留言:
張貼留言