■Apache2のproxyモジュールでリバースプロキシ
話せば長くなるけど、設定は簡単。
外側からの9080アクセスはNATの内側のApache2の80ポートに転送、
「/zabbix」のときだけ、proxyモジュールで別のApache2が稼働している
Zabbixサーバへリバースプロキシアクセスすることで、
Ciscoルータのポート転送設定を簡略化したい。
■要はポート転送を複数作るのも面倒だし、
クライアント側も面倒なので以下のようにしたいというだけのこと。
http://172.16.16.10:9080/ -> http://192.168.152.152/
http://172.16.16.10:9080/zabbix/ -> http://192.168.152.151/zabbix/
■「192.168.152.151:80」だけが頑張れば、
haproxyよりも簡単に出来そうという思いつきが重なって。。。
"172.16.16.10:9080/*" -> \
if [ REQUEST='/zabbix/' ] ;then \
"-> 192.168.152.151:80/zabbix/"
else
"-> 192.168.152.152:80"
fi
■Cisco側のoutside側の現在の設定
R1# show running-config | section FastEthernet0
ip domein lookup source-interface FastEthernet0
interface FastEthernet0
ip address 172.16.16.10 255.255.255.0
ip nat outside
ip virtual-reassembly
ip route 172.16.16.10 255.255.255.0 FastEthernet0
ip nat inside source list 10 pool PAT Overload
ip nat inside source static 192.168.152.152 80 interface FastEthernet0 9080
■inside側の192.168.152.0/24のアクセスに対して172.16.16.10でNATしますよという意味。
R1# show running-config | section PAT
ip nat pool PAT 172.16.16.10 172.16.16.10 prefix-length 24
ip nat inside source list 10 pool PAT overload
R1# show access-lists 10
10 permit 192.168.152.0,wildvard bits 0.0.0.255(24798 matches)
20 deny any(53961 matched)
■inside側のVLAN10の設定
CiscoルータはGWですよという意味。
R1# show running-config | section Vlan10
interface Vlan10
ip address 192.168.152.254 255.255.255.0 Vlan10
ip nat inside
ip virtual-reassembly
ip route 192.168.152.0 255.255.255.0 Vlan10
logging source-interface Vlan10
■Vlan10はFastEthernet2が所属
ネゴシエーションで対向のESXi側が半二重になっていた経験があるので、
両側とも100M全二重で固定。
R1# show running-config | section FastEthernet2
interface FastEthernet2
description HyperVisor
switchport access vlan10
duprex full
speed 100
■このESXi5.5配下の標準スイッチの内側の2台のゲストのdebianに
Webのリクエストを振り分けるという話なのですが、
それは今回の件とは関係無いので、スルー。
Ciscoルータも今回は設定変更しないので、スルー。
■さて本題。apache2のproxyモジュールを有効にする。
$ sudo a2enmod proxy
Enabling module proxy.
To activate the new configuration, you need to run:
service apache2 restart
$ ls /etc/apache2/mods-enabled/ | grep proxy
proxy.conf
proxy.load
$ sudo /etc/init.d/apache2 reload
[ ok ] Reloading web server config: apache2.
■リバースプロキシ用のサイトを作成
$ cat /etc/apache2/sites-available/zabbix-proxy
ProxyRequests Off
<Proxy *>
Order allow,deny
Allow from all
</Proxy>
ProxyPass /zabbix http://192.168.152.151/zabbix/
ProxyPassReverse /zabbix http://192.168.152.151/zabbix/
■サイトを有効化
$ sudo a2ensite zabbix-proxy && sudo /etc/init.d/apache2 reload
■/zabbix/へのアクセス確認。
ログイン正常。リバースプロキシ経由で自動更新もされます。
クッキーの設定等はとりあえずスルー。様子見。
また、通常のWebサイトはそのまま見れます。