看板 FreeBSD 關於我們 聯絡資訊
※ 引述《[email protected] (ccy.twbbs.org)》之銘言: > 目前有兩部電腦A,B如下: > Client -> A -> B > 問題是這樣 > 假設 A IP為 210.59.229.19,而 > B IP為 122.252.32.134 > 假設本人管理的電腦為A,Client端為一般使用者,B電腦為跑Apache的服務。 > 因 A電腦 並無架設Apache,故希望讓使用者能連到A IP (port為80)後, > 將封包重新導向至B IP (port 80)。 > 之前我有用過socket將連至 A IP (80)的連線,導向至 B IP (80), > 但由B主機中發現,連入網頁的記錄都是記錄成 A的IP。 > 所以後來便又將socket關掉。 > 我用的OS為 FreeBSD-7.0,請問有啥較簡單方法,可以讓使用者在連線到A電腦, > 重新導向至B電腦時,可以使B電腦的記錄為使用者的IP,而不是A電腦的IP? > 謝謝。 deer 上的沒轉出來,到 bs2 上再貼一次,順便補充一些東西。 == 你要在 A 的伺服氣上架 haproxy 之類的軟體,在 HTTP header 裡加上 X-Forwarded-For 這個欄位。 然後在 B 主機的 apache2 上裝 mod_rpaf2,或是 mod_extract_forwarded2, 認定 A 送過來的 X-Forwarded-For 是合法的位置。 如果 B 主機上是 lighttpd 或 nginx,都有對應的設定可以將 X-Forwarded-For 轉換掉。 == # mod_extract_forwarded2 example AddAcceptForwarder 10.1.1.1 AddAcceptForwarder 10.1.1.2 AddAcceptForwarder 10.1.1.3 AddAcceptForwarder 10.1.1.4 AddAcceptForwarder 10.1.1.5 # mod_rpaf2 example RPAFenable On RPAFsethostname On RPAFproxy_ips 10.1.1.1 10.1.1.2 10.1.1.3 10.1.1.4 10.1.1.5 RPAFheader X-Forwarded-For 兩個都用過很長一段時間,應該沒什麼問題。 -- ※ Origin: 交大次世代(bs2.to) ◆ From: bsd2.cs.nctu.edu.tw