我正在將 Node Express 伺服器與 axios 一起使用,並請求後端的 api 呼叫來代理請求,但我想發送用戶詳細資訊而不是伺服器。
例如:
我的網站 -> 使用者點擊圖片 -> get 被呼叫到我的伺服器 A -> 伺服器呼叫另一個伺服器 B 來檢索資料。
現在B伺服器將看到A的伺服器訊息,如ip、geo、isp等。
答案1
嗯,首先要理解的是,您所指的“geo”和“isp”等許多資訊都源自 IP 位址本身;所以你想做的就是轉發它。
您沒有提供有關您的設置的大量信息,但我提供了兩種可能的設置。
1. 反向代理
伺服器 A 是反向代理,它使用以下方式將所有請求代理到伺服器 B nginx
- 如果是這種情況,那麼我們將使用Forwarded header
描述得很好的方法這裡。
範例程式碼片段:
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-Host $remote_addr;
proxy_pass http://server_b;
}
2、應用層 伺服器 A 託管一個網站(或其他應用程式),該網站在後端向伺服器 B 發送請求。
在這種情況下,在不知道應用程式的確切工作原理的情況下,我建議您以某種方式將訪客 IP 包含在請求負載中。
基本範例,如果您在伺服器 A 上使用 PHP(且此表單在傳遞到伺服器 B 之前已提交至伺服器 A):
<input type="hidden" id="visitorIP" name="visitorIP" value="<?php $_SERVER['REMOTE_ADDR']?>">