Slitaz Apache 與 mod_rpaf

要數運行快速既網頁伺服器, Nginx 會是其中一個好選擇. 資源需求低, 自然運行較快而且有更多負載. 不過, 仍有好多朋友使用功能強大的 Apache 伺服器, 要無痛遷移至 Nginx 並非容事. 怎樣可以結合 Apache 功能又擁有 Nginx 速度? 方法好簡單, 只要使用 Nginx 作為前台的網頁伺服器連接用戶端及以 Apache 作為後端伺服器便可. 由於網上已有眾多教學, 小棗就不顯醜了.

運行 Nginx + Apache 會有一個問題, 因為 Nginx 作為用戶端與 Apache 伺服器的轉接點. 用戶的連線透過 Nginx 連至 Apache 伺服器, 所以 Apache 的系統記錄只會標示連線是從 Nginx IP 接入, 而不會記錄用戶端的 IP 地址. 要改善這種情況便需要為 Apache 載入 modules, 名為 mod_rpaf.

以下以 Slitaz 4.0 示範, 怎樣加入 mod_rpaf 至 Apache 內.

  1. 先安裝下列套件:

    slitaz-toolchain
    apache-dev
    apr-dev
    apr-util-dev
    perl

  2. 到下列網址下載 mod_rpaf
    http://stderr.net/apache/rpaf/download/mod_rpaf-0.6.tar.gz
  3. 先解壓下載檔案到目錄
    tar -zxvf mod_rpaf-0.6.tar.gz
  4. 執行 apxs -i -c -n mod_rpaf-2.0.so mod_rpaf-2.0.c
    *注要執行 make rpaf-2.0 時會有錯誤
  5. 完成編譯後 mod_rpaf-2.0.so 會在 /usr/share/apache/modules/ 目錄內
  6. 開啟 httpd.conf 加入啟動 mod_rpaf 設定

    LoadModule rpaf_module modules/mod_rpaf-2.0.so
    RPAFenable On
    RPAFsethostname Off
    RPAFproxy_ips <NGINX 伺服器 IP 地址>
    RPAFheader X-Forwarded-For

  7. 重啟 Apache 伺服器
  8. 嘗試以網頁瀏覽器查看一下網頁是否顯示正確
  9. 檢查 Apache 系統記錄, 存取地址應可成功記錄用戶端的 IP 地址

 

Please leave your comment on the topic