我在數字海洋上有一滴。一切正常并且配置正確。但是,我在這個 droplet 上運行了 nodeJs。此代碼 req.get('host') 輸出 localhost:3000 而不是我的域名。請問我該如何解決這個問題,我需要什么檔案來進行這個更改。
uj5u.com熱心網友回復:
我認為這與您在數字海洋面板中的 dns 設定有關,他們在這里解釋
WILL DIRECT TO, which can be set to:
A DigitalOcean Droplet or Load Balancer by typing its name and selecting it from the menu.
您可能使用WILL DIRECT TO選項,并且因為它被重定向,所以主機名是localhost
uj5u.com熱心網友回復:
我在 expressJs 的檔案中找到了它。我觀察到數字海洋正在代理我的請求,因此在 x-forwarded-host 標頭屬性中添加了主機名。
http://expressjs.com/en/5x/api.html#req.host
當信任代理設定未評估為 false 時,此屬性將改為從 X-Forwarded-Host 標頭欄位中獲取值。此標頭可以由客戶端或代理設定。
如果請求中有多個 X-Forwarded-Host 標頭,則使用第一個標頭的值。這包括一個帶有逗號分隔值的標頭,其中使用了第一個值。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/505014.html
