Ubuntu PreReqs:sudo apt-get install libgeoip1 libgeo-ip-perl libregexp-common-perl
Сценарий Мной только Для Вас:
#Parses out ip and prints ip followed by country
use strict;
use warnings;
use Regexp::Common qw /net/;
use Geo::IP;
my $gi = Geo::IP->new(GEOIP_STANDARD);
while (<>) {
#Following matches IPv4 addresses and stores the result in $1
#The way this is now, it will only do the first IP on each line
if (/($RE{net}{IPv4})/g) {
print $1 . ':' . $gi->country_code_by_addr($1);
}
}
Ввод-вывод:
65.19.146.2
65.19.146.2:US
65.19.146.2
220.248.0.0:CN
Сценарий выгоняет циклы по своему входу, поэтому если сценарий называют foo.pl и является исполняемым файлом, можно просто сделать что-то как cat access.log | foo.pl
. Если Вы хотите более точную деталь, посмотрите Гео-:: документы модуля жемчуга IP (и Вы, возможно, должны были бы установить другую базу данных).
Необходимо добавить исключение для прокси — Ваш ProxyPass
и ProxyPassMatch
директивы должны быть похожими:
ProxyPassMatch ^/(mytomcatappA|mytomcatappB)/(.*) balancer://tomcatCluster/$1/$2
ProxyPass /server-status !
ProxyPass / http://qa-web1/
!
вместо целевых средств URL “исключают указанный путь из проксирования”. Директивы должны быть заказаны с самым определенным URL сначала, потому что первая директива соответствия используется.
И помещение ProxyPass
и ProxyPassMatch
внутри <Proxy>
и <ProxyMatch>
контейнеры не документируются — не уверенный, должно ли это действительно работать правильно; просто разместите их внутри <VirtualHost>
.
Замена:
<Proxy />
ProxyPass http://qa-web1/
</Proxy>
С:
<ProxyMatch ! "^/server-status">
ProxyPass http://qa-web1/
</Proxy>