何も設定しないとApacheのログにはSquidのIPが書かれてしまう。
Squidの設定に
forwarded_for on
を記述する。
そしてApache側のサーバーに
X-Forwarded-ForヘッダからIPアドレスを取得するモジュールをインストールする。
sudo aptitude install libapache2-mod-rpaf
mod_rpafの設定を変更する。RPAFproxy_ipsにはSquidサーバーのIPを記述しておく。
sudo nano /etc/apache2/mods-available/rpaf.conf
RPAFenable On RPAFsethostname On RPAFproxy_ips 192.168.1.201
mod_rpafが組み込まれていなければ
sudo a2enmod rpaf
Apacheを再起動
sudo service apache2 restart
これでApacheのログにアクセス元のIPが書かれてるはず。
とりあえずApacheのログさえちゃんとなればどうでもいいんです!
っていう場合にはSquidの設定はせずにmod_rpafだけインストールすればいい。
もしくはApacheのログの設定で対処しましょう。
LogFormatの%hを%{X-Forwarded-For}iに変更する。
combinedが他でも使っていて変更できない!という場合は別の名前で新たに記述しておく。reverseproxyとか。
sudo nano /etc/apache2/apache2.conf
LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined
Apacheを再起動
sudo service apache2 restart
ただこれだとREMOTE_ADDRがSquidのサーバーのIPなのかな?わからん。