<p>Quando um site usa uma <a href="http://pt.wikipedia.org/wiki/Content_Delivery_Network">CDN</a> para fazer cache e/ou aceleração as vantagens
são bem conhecidas, mas algumas vezes é necessário ajustar uma ou outra
coisa para tudo continue funcionando. Um exemplo é o servidor web
do site deixa de receber requisições diretamente do usuário porque agora
tem os servidores da CDN intermediando essa comunicação. Então, nos logs
do servidor web estará um IP de um servidor da CDN ao invés do IP de
um usuário.</p>
<p><img src="http://www.fernandoike.com/images/cdn.png" /></p>
<p>Para resolver esse problema, uitas CDNs enviam um cabeçalho HTTP extra
de suas requisições para o servidor web do site, esse cabeçalho é o
True-Client-IP.</p>
<p>Abaixo dois exemplos (<a href="http://http.apache.org">Apache</a> e <a href="http://www.nginx.org">nginx</a>) de configuração do Log para
registrar o True-Client-IP.</p>
<h4>Apache</h4>
<pre>
[...]
LogFormat "%v %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" \"%{true}i\" %q" site.com
CustomLog ${APACHE_LOG_DIR}/teste_access.log site.com
[...]
</pre>
<h4>nginx</h4>
<pre>
[...]
log_format teste '$remote_addr - $remote_user [$time_local] '
'"$request" $status $bytes_sent '
'"$http_referer" "$http_user_agent" '
'$http_true_client_ip';
access_log /var/log/nginx/teste.com.log site.com;
[...]
</pre>
CDN: Identificando IP de um usuário
8 de Agosto de 2013, 14:40 - sem comentários ainda | Ninguém está seguindo este artigo ainda.
Visualizado 57 vezes
0sem comentários ainda