2013-02-27 1 views
1

MaxMind의 GeoLite 도시에서 작동하도록 Races 앱 (Passenger 3 + Nginx에 배포 됨)을 설정하려고했지만 아무런 효과가 없습니다. 내 레일 응용 프로그램에서 다음Rails 앱에서 Nginx/Passenger로 GeoIP 사용

# nginx.conf 
# IP Geolocation - City Level 
geoip_city /usr/share/GeoIP/GeoLiteCity.dat; 
passenger_set_cgi_param HTTP_GEOIP_CITY_COUNTRY_CODE $geoip_city_country_code; 
passenger_set_cgi_param HTTP_GEOIP_CITY_COUNTRY_CODE3 $geoip_city_country_code3; 
passenger_set_cgi_param HTTP_GEOIP_CITY_COUNTRY_NAME $geoip_city_country_name; 
passenger_set_cgi_param HTTP_GEOIP_REGION $geoip_region; 
passenger_set_cgi_param HTTP_GEOIP_CITY $geoip_city; 
passenger_set_cgi_param HTTP_GEOIP_POSTAL_CODE $geoip_postal_code; 
passenger_set_cgi_param HTTP_GEOIP_CITY_CONTINENT_CODE $geoip_city_continent_code; 
passenger_set_cgi_param HTTP_GEOIP_LATITUDE $geoip_latitude; 
passenger_set_cgi_param HTTP_GEOIP_LONGITUDE $geoip_longitude; 

나는 이런 일을 수행

geodata = { 
    country_code: request.env["HTTP_GEOIP_CITY_COUNTRY_CODE"], 
    country_name: request.env["HTTP_GEOIP_CITY_COUNTRY_NAME"], 
    region: request.env["HTTP_GEOIP_REGION"], 
    city_name: request.env["HTTP_GEOIP_CITY"], 
    zipcode: request.env["HTTP_GEOIP_POSTAL_CODE"], 
    lat: request.env["HTTP_GEOIP_LATITUDE"], 
    lng: request.env["HTTP_GEOIP_LONGITUDE"] 
} 

를하지만 항상 모든 값 전무를 반환합니다. 변수를 올바르게 설정합니까? 지리적 데이터베이스를 잘못 구성 할 수 있습니까? Nginx는 오류를 발생시키지 않고 --with-http_geoip_module 컴파일 플래그가 설정됩니다.

답변

1

알아 냈습니다. http {} 블록에 geoip_city을 지정하는 것 외에도 server {} 블록에 passenger_set_cgi_param 지정 문을 지정하고 변수에 HTTP_의 접두사를 추가해야 전달됩니다.

관련 문제