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