日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Express engine 学习笔记 - 工作在反向代理背后的 Express 设置

發布時間:2023/12/19 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Express engine 学习笔记 - 工作在反向代理背后的 Express 设置 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

第22行的 express,返回的是一個 express Application 實例。

再看該實例的 set 方法:

app.set(name, value)

將設置名稱分配給值。 您可以存儲您想要的任何值,但某些名稱可用于配置服務器的行為。 這些特殊名稱列在應用程序設置表中。

為布爾屬性調用 app.set(‘foo’, true) 與調用 app.enable(‘foo’) 相同。 同樣,為布爾屬性調用 app.set(‘foo’, false) 與調用 app.disable(‘foo’) 相同。

使用 app.get() 檢索設置的值。

Express behind proxies

在反向代理后面運行 Express 應用程序時,某些 Express API 可能返回與預期不同的值。 為了對此進行調整,可以使用 trust proxy 應用程序設置來公開 Express API 中反向代理提供的信息。

最常見的問題是公開客戶端 IP 地址的 express API 可能會顯示反向代理的內部 IP 地址。這并不是我們期望的。

server.set('trust proxy', 'loopback');

trust proxy 的屬性可以設置成以下幾種類型:

設置成 boolean

如果為 true,則客戶端的 IP 地址被理解為 X-Forwarded-For 標頭中最左側的條目。

如果為 false,則應用程序被理解為直接面向客戶端,并且客戶端的 IP 地址來自 req.socket.remoteAddress。 這是默認設置。

設置為 true 時,確保最后一個受信任的反向代理刪除/覆蓋以下所有 HTTP 標頭很重要:X-Forwarded-For、X-Forwarded-Host 和 X-Forwarded-Proto,否則的話,客戶可能為這幾個字段提供任何價值。

設置成 ip 地址

作為反向代理信任的 IP 地址、子網或一組 IP 地址和子網。 以下列表顯示了預配置的子網名稱:

  • loopback - 127.0.0.1/8, ::1/128
  • linklocal - 169.254.0.0/16, fe80::/10
  • uniquelocal - 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16, fc00::/7

一些例子:

app.set('trust proxy', 'loopback') // specify a single subnet app.set('trust proxy', 'loopback, 123.123.123.123') // specify a subnet and an address app.set('trust proxy', 'loopback, linklocal, uniquelocal') // specify multiple subnets as CSV app.set('trust proxy', ['loopback', 'linklocal', 'uniquelocal']) // specify multiple subnets as an array

指定時,IP 地址或子網將被排除在地址確定過程之外,并且離應用服務器最近的不受信任的 IP 地址被確定為客戶端的 IP 地址。 這通過檢查 req.socket.remoteAddress 是否可信來工作。 如果是,則從右到左檢查 X-Forwarded-For 中的每個地址,直到第一個不可信地址。

啟用信任代理將產生以下影響:

  • req.hostname 的值來自 X-Forwarded-Host 頭中設置的值,可以由客戶端或代理設置。

  • X-Forwarded-Proto 可以由反向代理設置來告訴應用程序是 https 還是 http 甚至是無效名稱。 該值由 req.protocol 反映。

  • req.ip 和 req.ips 值基于套接字地址和 X-Forwarded-For 標頭填充,從第一個不受信任的地址開始。

更多Jerry的原創文章,盡在:“汪子熙”:

總結

以上是生活随笔為你收集整理的Express engine 学习笔记 - 工作在反向代理背后的 Express 设置的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。