Aller au contenu

Messages recommandés

Posté(e)

Bonjour,

J'ai installé HAProxy car il répond à un besoin que j'avais depuis longtemps comme beaucoup de personnes sur ce forum. Au passage un énorme MERCI à Diaoul pour son boulot sur les packages.

J'ai développé un site web mobile pour suivre les horaires de la nourrice de mon fils. Dans les informations collectées par l'appli, il y a l'IP de la personne qui soumet un enregistrement ($_SERVER['REMOTE_ADDR']).

Problème, depuis l'installation d'HAProxy, l'IP enregistrée est 127.0.0.1 (localhost). Ça me parait normal puisque c'est HAProxy qui fait le requête.

Ma question est donc : comment configurer HAProxy pour qu'il fournisse l'IP de la personne connectée et non le localhost ?

J'ai d'autres comportements étranges avec HAProxy (authentification avec htaccess alors que je n'en ai pas mis sur cette appli) mais je verrais ça après :)

Merci pour votre aide !

Posté(e)

bonjour,

deux choses à faire :

côté conf haproxy :

dans le frontend que tu utilises, ajoute les options "option http-server-close,option forwardfor"

côté php :

regarde dans $_SERVER["HTTP_X_FORWARDED_FOR"]

voilà !

Posté(e)

  Le 12/12/2012 à 9:15 AM, Nounours44 a dit :

bonjour,

deux choses à faire :

côté conf haproxy :

dans le frontend que tu utilises, ajoute les options "option http-server-close,option forwardfor"

côté php :

regarde dans $_SERVER["HTTP_X_FORWARDED_FOR"]

voilà !

c'est bon a savoir ^^

Posté(e)

Tout simplement parfait ! Merci beaucoup !

Le frontend était déjà configuré correctement. il fallait simplement aller chercher la bonne variable.

function get_ip() {
	if($_SERVER['REMOTE_ADDR'] == "127.0.0.1") {
		$ip = $_SERVER["HTTP_X_FORWARDED_FOR"];
	} else {
		$ip = $_SERVER['REMOTE_ADDR'];
	}
	return $ip;
}
Invité
Ce sujet ne peut plus recevoir de nouvelles réponses.
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.