J'essaie de détecter le pays des visiteurs. J'ai coché l'option geoip dans le tableau de bord de cloudflare et cela ajoute un en-tête CF-IPCountry aux en-têtes de requête, mais je ne parviens pas à le transmettre à mon application dorsale via le proxy nginx. Qu'est-ce que je fais de mal ?
location / {
# forward application requests to the gunicorn server
proxy_pass http://localhost:8080;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header CF_IPCountry $http_cf_ipcountry; #this line is the culprit
}
EDIT : Le backend ne voit pas ce header. J'utilise Flask et j'ai créé une route pour afficher tous les en-têtes de la requête.
@app.route('/headers')
def header():
headers = request.headers
header_list = []
for h in headers:
header_list.append(h)
return jsonify(header_list)
0 votes
Expliquez davantage les choses. Le backend ne voit pas du tout cet en-tête ? Il le voit mais avec une valeur inattendue ? Avez-vous vérifié que vous recevez bien cet en-tête dans votre instance Nginx ?
0 votes
J'ai mis à jour ma question. Le backend ne voit pas l'en-tête. Comment puis-je vérifier si nginx reçoit cet en-tête ?
0 votes
"Comment puis-je vérifier si nginx reçoit cet en-tête ?" soit plus de journalisation ou de renifler le trafic entrant, si c'est HTTP.