Я пытаюсь определить страну посетителей. У меня есть опция geoip, отмеченная в тире cloudflare, и она добавляет заголовок CF-IPCountry для заголовков запроса, но я не могу передать это своему бэкэнд-приложению через прокси-сервер nginx. Что я делаю не так?
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
}
РЕДАКТИРОВАТЬ: серверная часть не видит этот заголовок. Я использую фляжку и проложил маршрут для вывода всех заголовков запросов.
@app.route('/headers')
def header():
headers = request.headers
header_list = []
for h in headers:
header_list.append(h)
return jsonify(header_list)
По умолчанию nginx игнорирует заголовки HTTP, содержащие символы подчеркивания.
У тебя есть:
proxy_set_header CF_IPCountry $http_cf_ipcountry; #this line is the culprit
Но это должно быть:
proxy_set_header CF-IPCountry $http_cf_ipcountry; #this line is the culprit