Como Evitar o Erro 524 do Cloudflare em Servidores PHP-FPM com Apache no Ubuntu
A Cloudflare é um serviço popular de CDN e segurança que ajuda a acelerar a entrega de conteúdo e proteger sites contra ameaças. No entanto, pode surgir o erro 524 quando o servidor de origem demora muito para responder a uma solicitação, indicando que a conexão com o servidor foi estabelecida, mas este não respondeu a tempo. Neste artigo, abordaremos como configurar um servidor Ubuntu com Apache e PHP 7.4-FPM (ou superior) para evitar o erro 524, garantindo que as requisições sejam processadas dentro do limite de tempo permitido pelo Cloudflare (100 segundos). Também iremos levar em consideração o upload máximo da Cloudflare que é de 100mb.
Passo a Passo
1. Atualize e Instale os Pacotes Necessários
Primeiro, certifique-se de que seu sistema está atualizado e que você tem Apache e PHP-FPM instalados. iremos usar o php7.4, mas pode usar a versão mais recente.
sudo apt update
sudo apt upgrade -y
sudo apt install apache2 php7.4 php7.4-fpm libapache2-mod-fcgid -y
2. Configuração do PHP
Edite o arquivo php.ini
para ajustar as diretivas relevantes:
sudo nano /etc/php/7.4/fpm/php.ini
Ajuste as seguintes diretivas, usamos 512mb de memória, mas pode ser maior conforme servidor:
max_file_uploads = 30
upload_max_filesize = 10M
post_max_size = 100M
max_execution_time = 90
memory_limit = 512M
Salve e feche o arquivo.
3. Ajuste a Configuração do PHP-FPM
Edite o arquivo www.conf
para garantir que as requisições não excedam 100 segundos:
sudo nano /etc/php/7.4/fpm/pool.d/www.conf
Ajuste as seguintes diretivas, podemos ser 90s ou 60s:
request_terminate_timeout = 90s
Salve e feche o arquivo e reinicie o PHP-FPM:
sudo systemctl restart php7.4-fpm
4. Configuração do Apache
Edite o arquivo de configuração principal do Apache ou a configuração do seu site específico:
sudo nano /etc/apache2/apache2.conf
Adicione ou ajuste as seguintes diretivas de timeout e KeepAlive:
Timeout 100
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 5
ProxyTimeout 100
Salve e feche o arquivo e reinicie o Apache:
sudo systemctl restart apache2
5. Configuração do Virtual Host no Apache
Configure o Virtual Host do Apache para usar PHP-FPM. Edite o arquivo de configuração do seu site:
sudo nano /etc/apache2/sites-available/000-default.conf
Adicione as seguintes linhas dentro da configuração do VirtualHost:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
<Directory /var/www/html>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
<FilesMatch ".+\\\\.ph(ar|p|tml)$">
SetHandler "proxy:unix:/run/php/php7.4-fpm.sock|fcgi://localhost"
</FilesMatch>
</VirtualHost>
Salve e feche o arquivo e reinicie o Apache:
sudo systemctl restart apache2
6. Testando a Configuração
Crie um formulário HTML simples que permita o upload de até 30 arquivos de 10MB cada:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Upload de Imagens</title>
</head>
<body>
<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="file" name="images[]" multiple>
<input type="submit" value="Upload">
</form>
</body>
</html>
E crie um script PHP (upload.php
) para processar o upload:
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
foreach ($_FILES['images']['tmp_name'] as $key => $tmp_name) {
$file_name = $_FILES['images']['name'][$key];
$file_tmp = $_FILES['images']['tmp_name'][$key];
$upload_dir = 'uploads/';
if (move_uploaded_file($file_tmp, $upload_dir . $file_name)) {
echo "Arquivo $file_name carregado com sucesso.<br>";
} else {
echo "Falha no upload do arquivo $file_name.<br>";
}
}
}
?>
Com essas configurações, seu servidor Apache com PHP 7.4-FPM está ajustado para evitar o erro 524 do Cloudflare. Certifique-se de que as configurações de timeout e limites de tamanho de arquivo estão dentro dos parâmetros permitidos pelo Cloudflare. Monitore o desempenho do servidor e ajuste conforme necessário para garantir um serviço eficiente e confiável.