Comment consigner des informations client relatives au trafic TCP ou SSL sur Classic Load Balancer lors de l'exécution d'Apache ?
Par défaut, un Classic Load Balancer ne transmet pas les informations client pour les écouteurs TCP ou SSL. Vous devez activer le protocole proxy sur un Classic Load Balancer afin que celui-ci soit en mesure de transmettre la demande avec les informations client.
Après avoir activé le protocole proxy sur le Classic Load Balancer, vous devez également l'activer sur l'application principale. Nginx prend en charge un module similaire de manière native, ce qui n'est pas le cas d'Apache. Vous devez compiler et installer le module séparément avant d'activer le protocole proxy dans la configuration Apache.
Le protocole proxy est un protocole Internet utilisé pour exécuter des informations de connexion de la source demandant la connexion à la destination pour laquelle la connexion a été demandée. Elastic Load Balancing utilise le protocole proxy version 1, qui fait appel à un format d'en-tête compréhensible par les utilisateurs. L'en-tête du protocole proxy vous aide à identifier l'adresse IP d'un client quand vous utilisez un équilibreur de charge configuré pour les connexions TCP/SSL.
La ligne du protocole proxy est une ligne unique qui se termine par un retour chariot et un saut de ligne ("\r\n"), au format suivant :
PROXY_STRING + single space + INET_PROTOCOL + single space + CLIENT_IP + single space + PROXY_IP + single space + CLIENT_PORT + single space + PROXY_PORT + "\r\n"
Exemple : IPv4
Voici un exemple de ligne de protocole proxy pour IPv4 :
PROXY TCP4 198.51.100.22 203.0.113.7 35646 80\r\n
Vous pouvez consigner l'adresse IP du client dans les journaux d'accès Apache avec les écouteurs TCP d'un Classic Load Balancer. Un exemple de code source pour l'installation du module de protocole proxy Apache est disponible sur GitHub, et des informations relatives à la modification de httpd.conf figurent dans la documentation du serveur HTTP Apache.
Remarque : Ces liens sont fournis à titre informatif uniquement et ne doivent pas être considérés comme une liste complète ni comme une approbation du contenu des exemples. AWS n'est pas responsable de ce contenu ni de l'exactitude du contenu externe.
Suivez les instructions ci-après pour activer le protocole proxy et capturer l'adresse IP du client dans les journaux d'accès de l'application principale.
Configuration pour l'équilibreur de charge (écouteur TCP) :
aws elb create-load-balancer-policy --load-balancer-name --policy-name my-ProxyProtocol-policy --policy-type-name ProxyProtocolPolicyType --policy-attributes AttributeName=ProxyProtocol,AttributeValue=true
aws elb set-load-balancer-policies-for-backend-server --load-balancer-name --instance-port --policy-names my-ProxyProtocol-policy
Configuration pour le serveur backend (Apache 2.4) :
Installez les packages suivants pour le protocole proxy :
- git
- httpd24-devel
- gcc
$> sudo yum install git httpd24-devel gcc
Téléchargez le module.
$> sudo git clone https://github.com/roadrunner2/mod-proxy-protocol
Compilez le module téléchargé.
$> cd mod-proxy-protocol/
$> sudo make
Déplacez le fichier du module compilé (.so) vers le répertoire /etc/httpd/modules.
$> sudo cp .libs/mod_proxy_protocol.so /etc/httpd/modules/
Ajoutez la ligne suivante dans httpd.conf pour activer le protocole proxy.
$> LoadModule proxy_protocol_module modules/mod_proxy_protocol.so
$> ProxyProtocol On
Modifiez le format de journal dans httpd.conf et effectuez les modifications suivantes :
$> LogFormat "%h %p %a %{remote}p %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
Redémarrez Apache.
$> sudo service httpd restart
Remarque:
- Le module de protocole proxy a été testé avec Apache version 2.4.
- Si Apache version 2.2 est installé sur le serveur et que vous voulez effectuer une mise à niveau vers Apache version 2.4, vous devez supprimer tous les packages httpd (httpd, httpd-devel et httpd-tools) avant d'installer httpd24-devel, requis pour le protocole proxy.
- Pour les systèmes Linux basés sur Debian, remplacez httpd24-devel par apache-devel ou apache2-dev.
Classic Load Balancer, Elastic Load Balancing, protocole proxy
Cette page vous a-t-elle été utile ? Oui | Non
Retour au Centre de connaissances AWS Support
Vous avez besoin d'aide ? Consultez le site du Centre AWS Support
Date de publication : 15/09/2016