O Cloudflare é uma plataforma robusta para segurança, desempenho e confiabilidade de sites. Com a API do Cloudflare e a linguagem PHP, você pode automatizar diversas tarefas e melhorar a gestão de sua infraestrutura. Neste artigo, vamos explorar algumas soluções práticas, como gerenciamento de DNS dinâmico, bloqueio de IPs, configurações de cache e muito mais. Vamos lá!
1. Gerenciamento de DNS Dinâmico com PHP e Cloudflare
Para quem tem IPs dinâmicos, atualizar os registros DNS pode ser um desafio. Com a API do Cloudflare, você pode automatizar essa tarefa facilmente. O código abaixo mostra como atualizar o registro A de um domínio para o novo IP dinâmico.
<?php
$apiKey = 'YOUR_CLOUDFLARE_API_KEY';
$email = 'YOUR_CLOUDFLARE_EMAIL';
$zoneId = 'YOUR_ZONE_ID';
$recordId = 'YOUR_RECORD_ID'; // O ID do registro DNS A
$newIp = 'NEW_IP_ADDRESS'; // O novo IP dinâmico
$url = "https://api.cloudflare.com/client/v4/zones/{$zoneId}/dns_records/{$recordId}";
$data = [
'type' => 'A',
'name' => 'example.com',
'content' => $newIp,
'ttl' => 1,
'proxied' => true,
];
$options = [
'http' => [
'header' => "Content-Type: application/json\r\n" .
"Authorization: Bearer {$apiKey}\r\n" .
"X-Auth-Email: {$email}\r\n",
'method' => 'PUT',
'content' => json_encode($data),
],
];
$context = stream_context_create($options);
$response = file_get_contents($url, false, $context);
if ($response === FALSE) {
die('Error updating DNS record');
}
echo "DNS record updated: " . $response;
?>
Com esse script, você pode atualizar o IP de seus registros automaticamente, mantendo o seu domínio sempre acessível.
2. Automação de Firewall: Bloqueando IPs Suspeitos
Manter a segurança de um site é crucial. A API do Cloudflare permite bloquear IPs suspeitos ou maliciosos diretamente. Abaixo está um exemplo de como bloquear um IP automaticamente.
<?php
$apiKey = 'YOUR_CLOUDFLARE_API_KEY';
$email = 'YOUR_CLOUDFLARE_EMAIL';
$zoneId = 'YOUR_ZONE_ID';
$ipToBlock = 'IP_TO_BLOCK'; // O IP que você quer bloquear
$url = "https://api.cloudflare.com/client/v4/zones/{$zoneId}/firewall/access_rules/rules";
$data = [
'mode' => 'block',
'configuration' => [
'target' => 'ip',
'value' => $ipToBlock,
],
'notes' => 'Blocked due to suspicious activity',
];
$options = [
'http' => [
'header' => "Content-Type: application/json\r\n" .
"Authorization: Bearer {$apiKey}\r\n" .
"X-Auth-Email: {$email}\r\n",
'method' => 'POST',
'content' => json_encode($data),
],
];
$context = stream_context_create($options);
$response = file_get_contents($url, false, $context);
if ($response === FALSE) {
die('Error blocking IP');
}
echo "IP blocked successfully: " . $response;
?>
Esse código permite bloquear um IP malicioso de forma automática, ajudando a proteger seu site contra ataques.
3. Configuração de Cache: Forçando a Limpeza de Cache
A gestão do cache é uma das funcionalidades essenciais do Cloudflare. Você pode forçar a limpeza de cache de um URL específico com a seguinte API:
<?php
$apiKey = 'YOUR_CLOUDFLARE_API_KEY';
$email = 'YOUR_CLOUDFLARE_EMAIL';
$zoneId = 'YOUR_ZONE_ID';
$urlToClear = 'https://example.com/path/to/your/file.jpg';
$purgeData = [
'files' => [
$urlToClear,
],
];
$purgeUrl = "https://api.cloudflare.com/client/v4/zones/{$zoneId}/purge_cache";
$options = [
'http' => [
'header' => "Content-Type: application/json\r\n" .
"Authorization: Bearer {$apiKey}\r\n" .
"X-Auth-Email: {$email}\r\n",
'method' => 'POST',
'content' => json_encode($purgeData),
],
];
$context = stream_context_create($options);
$response = file_get_contents($purgeUrl, false, $context);
if ($response === FALSE) {
die('Error purging cache');
}
echo "Cache purged successfully: " . $response;
?>
Esse script limpa o cache de arquivos específicos, garantindo que os usuários recebam a versão mais atualizada do seu conteúdo.
4. Monitoramento de Performance: Coletando Dados de Tráfego
Se você deseja monitorar o desempenho do seu site, pode usar a API do Cloudflare para coletar dados de tráfego. Veja como acessar os dados de análise:
<?php
$apiKey = 'YOUR_CLOUDFLARE_API_KEY';
$email = 'YOUR_CLOUDFLARE_EMAIL';
$zoneId = 'YOUR_ZONE_ID';
$url = "https://api.cloudflare.com/client/v4/zones/{$zoneId}/analytics/dashboard";
$options = [
'http' => [
'header' => "Authorization: Bearer {$apiKey}\r\n" .
"X-Auth-Email: {$email}\r\n",
'method' => 'GET',
],
];
$context = stream_context_create($options);
$response = file_get_contents($url, false, $context);
if ($response === FALSE) {
die('Error fetching analytics data');
}
echo "Analytics data: " . $response;
?>
Com isso, você pode monitorar o tráfego e obter dados sobre a performance do seu site, como latência e número de requisições.
5. Gerenciamento de Regras de Página: Criando Regras Personalizadas
Você pode criar regras personalizadas para o seu site, como otimizar o cache de determinadas páginas ou redirecionar tráfego. Aqui está um exemplo de como criar uma regra de página que aplica um cache agressivo a URLs específicas:
<?php
$apiKey = 'YOUR_CLOUDFLARE_API_KEY';
$email = 'YOUR_CLOUDFLARE_EMAIL';
$zoneId = 'YOUR_ZONE_ID';
$pageRuleData = [
'targets' => [
[
'target' => 'url',
'constraint' => [
'operator' => 'matches',
'value' => 'http://example.com/*',
],
],
],
'actions' => [
[
'id' => 'cache_level',
'value' => 'aggressive',
],
],
'priority' => 1,
'status' => 'active',
];
$url = "https://api.cloudflare.com/client/v4/zones/{$zoneId}/pagerules";
$options = [
'http' => [
'header' => "Content-Type: application/json\r\n" .
"Authorization: Bearer {$apiKey}\r\n" .
"X-Auth-Email: {$email}\r\n",
'method' => 'POST',
'content' => json_encode($pageRuleData),
],
];
$context = stream_context_create($options);
$response = file_get_contents($url, false, $context);
if ($response === FALSE) {
die('Error creating page rule');
}
echo "Page rule created: " . $response;
?>
Esse código cria uma regra de página para otimizar o cache de URLs específicas, ajudando a melhorar o desempenho.
Conclusão
A API do Cloudflare, combinada com PHP, permite automatizar uma ampla gama de tarefas, desde o gerenciamento de DNS até a segurança avançada e otimização de performance. Com esses exemplos, você pode começar a criar soluções personalizadas para o seu site de forma rápida e eficaz.
Se você tiver alguma dúvida ou desejar mais exemplos, fique à vontade para entrar em contato. Aproveite a flexibilidade da API do Cloudflare e coloque sua infraestrutura na linha de frente da inovação!