■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サイトはそのまま見れます。