之前介紹 [FreeBSD]high performance caching reverse proxy: Varnish (安裝架設篇) 來當 Web 前端 Reverse Proxy,也有 load balance 的功能,不過碰到這樣的環境,後端 Apache Server 只會抓到 Reverse Proxy IP 來當作 log 紀錄,而無法正確取得 Client 端 IP,Varnish 官網 FAQ 有提到 log 檔案得的解決方法,不過在程式方面,要大量的修改,假設今天 Apache 跑10個 Virtual Host ,不就要去改10個網站程式,背後或許是一些大型 open source 的 Project,改起來相當不容易,也很費工夫。Darkhero 提供了 reverse proxy add forward module for Apache (mod_rpaf) 模組,只要裝上這模組,Apache 就不必動到其它設定就可以正確紀錄 log 檔案,且程式都不必修改,就可以得到正確 IP 了。 FreeBSD Ports 安裝方式:
cd /usr/ports/www/mod_rpaf2/ make install clean修改 httpd.conf (FreeBSD: /usr/local/etc/apache22/httpd.conf)
LoadModule rpaf_module libexec/apache22/mod_rpaf.so將上面 unmask,最後面加上:
RPAFenable On RPAFsethostname On RPAFproxy_ips xxx.xxx.xxx.xxx 127.0.0.1 RPAFheader X-Forwarded-For
See also
- OpenSSH 安全性漏洞 CVE-2016-0777 and CVE-2016-0778
- Jenkins + Apache User Auth
- Nginx + phpMyAdmin 搭配 SSL 設定
- PHP MVC Framework 搭配 Nginx + PHP-FPM 設定檔
- [筆記] 解決 apache mod_fcgid: HTTP request length 136000 (so far) exceeds MaxRequestLen (131072)
- 如何使用 Apache Module mod_mime
- 安裝 XCache 加速 PHP 執行速度
- 好用 PHP debug extension Xdebug on FreeBSD 安裝
- Ubuntu (Debian) 架設 apache mpm worker mod_fcgid 筆記
- [FreeBSD] 利用 fsck 指令修復不正常斷電關機