我正在使用Nginx作为代理来过滤对我的应用程序的请求.在"http_geoip_module"的帮助下,我正在创建一个国家代码http-header,我想使用"headers-more-nginx-module"将其作为请求头传递.这是Nginx配置中的位置块:
location / {
proxy_pass http://mysite.com;
proxy_set_header Host http://mysite.com;;
proxy_pass_request_headers on;
more_set_headers 'HTTP_Country-Code: $geoip_country_code';
}
Run Code Online (Sandbox Code Playgroud)
但这只会在响应中设置标头.我尝试使用"more_set_input_headers"而不是"more_set_headers",但是标题甚至没有传递给响应.
我在这里错过了什么?
我正在使用Nginx作为代理来过滤我的AppEngine Java应用程序的请求.GAE的位置服务(X-AppEngine-country标头)在没有代理的情况下运行良好,但现在GAE使用代理服务器的IP作为客户端IP,而X-AppEngine-country标头是无用的 - 它返回"ZZ"作为国家码.
我知道,头是由客户端IP来确定,如提到这里:
" X-AppEngine-Country - 发出请求的国家/地区,作为ISO 3166-1 alpha-2国家/地区代码.App Engine根据客户端的IP地址确定此代码. "
问题是我不知道这个头文件的数据是什么.我使用Nginx模块在X-Forwarded-For,Remote_Addr和Http_Client_IP标头中设置客户端IP,但显然X-AppEngine-country标头来自其他地方.
如何为GAE提供客户端IP,以便从原始IP中检索正确的国家/地区代码?