Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Last revision Both sides next revision
litespeed_wiki:cache:common:geoip-support [2019/04/17 14:52]
Lisa Clarke [Advanced Configuration:GEOIP2 Envirment Variables] Copyediting
litespeed_wiki:cache:common:geoip-support [2020/01/29 21:29]
Lisa Clarke Corrected Brand Capitalization
Line 1: Line 1:
-====== GeoLocation ​support ​(GEOIP) for LiteSpeed Web Server ​ ======+====== GeoLocation ​Support ​(GeoIP) for LiteSpeed Web Server ​ ======
  
-LSCache supports ​GEOIP+LSCache supports ​GeoIP databases, including MaxMind GeoIP2, MaxMind GeoIP Legacy, and IP2Location. ​ MaxMind discontinued their Legacy databases On January 2, 2019, hence we recommend you no longer use it.
  
 For LSWS v5.2.x and earlier, only the MaxMind Legacy Database .dat is supported. As of LSWS v5.3RC2, LSWS supports the [[https://​www.maxmind.com/​en/​geoip2-databases|MaxMind GeoIP2 format database]], ''​.mmdb''​. The database path configuration is in the same location as the legacy DB (**Configuration > Server > General > General settings > IP to GeoLocation DB**), then set the database path to either ''​.dat''​ or ''​.mmdb''​. For LSWS v5.2.x and earlier, only the MaxMind Legacy Database .dat is supported. As of LSWS v5.3RC2, LSWS supports the [[https://​www.maxmind.com/​en/​geoip2-databases|MaxMind GeoIP2 format database]], ''​.mmdb''​. The database path configuration is in the same location as the legacy DB (**Configuration > Server > General > General settings > IP to GeoLocation DB**), then set the database path to either ''​.dat''​ or ''​.mmdb''​.
Line 10: Line 10:
 To setup and enable GeoIP on LSWS, you will need to choose one database, download and install the database to a directory, setup the database path in LSWS Admin, enable GeoIP through the Apache configuration or LSWS native, then finally run some tests. ​ To setup and enable GeoIP on LSWS, you will need to choose one database, download and install the database to a directory, setup the database path in LSWS Admin, enable GeoIP through the Apache configuration or LSWS native, then finally run some tests. ​
  
-===== Download and Configure ​GEOIP Database Path =====+===== Map MaxMind GeoIP2 Variables to IP2Location ===== 
 +If you have switched from the MaxMind GeoIP2 service to an IP2location database on your shared hosting server, many of your PHP scripts may still make use of the ''​GEOIP_*''​ environment variables ''​$SERVER['​GEOIP_COUTRY_CODE'​]''​ and ''​$SERVER['​GEOIP_ADDR'​]''​. Because of the nature of shared hosting servers, it is impossible to remove these environment variables or get all customers to rename them in their scripts.  
 + 
 +Luckily, LiteSpeed Web Server handles this scenario for you. 
 + 
 +Starting from LSWS 5.4.4 build 2, ''​GEOIP_COUNTRY_CODE''​ is automatically mapped to ''​IP2LOCATION_COUNTRY_SHORT''​ and ''​GEOIP_ADDR''​ is automatically mapped to ''​IP2LOCATION_ADDR''​. 
 +===== Download and Configure ​GeoIP Database Path =====
  
 You will need to choose only one database to be used for your GeoIP: MaxMind GeoIP2, MaxMind Legacy Database, or IP2location database. Then, set up the right database path in the appropriate section in the LSWS Web Admin Console. ​   You will need to choose only one database to be used for your GeoIP: MaxMind GeoIP2, MaxMind Legacy Database, or IP2location database. Then, set up the right database path in the appropriate section in the LSWS Web Admin Console. ​  
Line 19: Line 25:
 Let's assume that you will store the DB in ''/​usr/​share/​GeoIP/''​. Let's assume that you will store the DB in ''/​usr/​share/​GeoIP/''​.
  
-Download ​the free database ​from ''​https://dev.maxmind.com/​geoip/geoip2/geolite2/'':​ +Starting December 30, 2019, you cannot ''​wget'' ​the GeoLite2 ​database ​anymore. Instead, you will need to register for a MaxMind account and obtain a license key in order to [[https://blog.maxmind.com/​2019/12/18/​significant-changes-to-accessing-and-using-geolite2-databases/|download GeoLite2 ​databases]]. 
-  wget http://​geolite.maxmind.com/​download/​geoip/​database/​GeoLite2-Country.tar.gz + 
-  tar -zxvf GeoLite2-Country.tar.gz+After download, you can unzip it: 
 +  tar -zxvf GeoLite2-Country_20200114.tar.gz
  
 Then, move the file ''​GeoLite2-Country.mmdb''​ to  Then, move the file ''​GeoLite2-Country.mmdb''​ to 
Line 46: Line 53:
   </​code>​   </​code>​
  
-==== Advanced Configuration:​GEOIP2 ​Environment Variables ====+==== Advanced Configuration:​GeoIP2 ​Environment Variables ====
  
 The full power of GeoIP2 requires the use of environment variables in the LiteSpeed configuration. The format used is designed to be as similar as possible to the Apache ''​mod_maxminddb''​ environment described [[https://​github.com/​maxmind/​mod_maxminddb|here]] ,​specifically for the ''​MaxMindDBEnv''​ variable. ​ Each environment variable is specified in the environment text box as one line: The full power of GeoIP2 requires the use of environment variables in the LiteSpeed configuration. The format used is designed to be as similar as possible to the Apache ''​mod_maxminddb''​ environment described [[https://​github.com/​maxmind/​mod_maxminddb|here]] ,​specifically for the ''​MaxMindDBEnv''​ variable. ​ Each environment variable is specified in the environment text box as one line:
Line 89: Line 96:
 You can add the following: ​ You can add the following: ​
   GEOIP_REGION_NAME CITY_DB/​subdivisions/​0/​names/​en   GEOIP_REGION_NAME CITY_DB/​subdivisions/​0/​names/​en
-Please make sure the correct entry name is used. For example, the following is incorrect. ​+Please make sure the correct entry name is used. For example, the following is incorrect: ''​name''​ should be ''​names''​.
   GEOIP_REGION_NAME CITY_DB/​subdivisions/​0/​name/​en   GEOIP_REGION_NAME CITY_DB/​subdivisions/​0/​name/​en
  
Line 149: Line 156:
  
 It may return the database path as <​code>/​usr/​share/​GeoIP/​GeoIP.dat</​code> ​ It may return the database path as <​code>/​usr/​share/​GeoIP/​GeoIP.dat</​code> ​
- 
-Alternatively,​ you can just download the database yourself directly. ​ 
  
 **NOTE**: On January 2, 2019, MaxMind discontinued the GeoLite Legacy databases. GeoLite Legacy databases are no longer available for download. ​ **NOTE**: On January 2, 2019, MaxMind discontinued the GeoLite Legacy databases. GeoLite Legacy databases are no longer available for download. ​
Line 262: Line 267:
 GeoIP rewrite rules that do not work as expected may be more complicated. You will need to check the rules to look for issues such as a redirect loop. When needed, you can log a ticket with us. Let us know the rules set is not working as expected, and provide a more detailed test example for us to take a further look.  GeoIP rewrite rules that do not work as expected may be more complicated. You will need to check the rules to look for issues such as a redirect loop. When needed, you can log a ticket with us. Let us know the rules set is not working as expected, and provide a more detailed test example for us to take a further look. 
  
-==== Out of date database caused IP not blocked ​==== +==== IP Not Blocked Due to Out-of-date Database ​==== 
-A user setup the following at /​etc/​apache2/​conf.d/​userdata/​geoip.conf: ​+A user set up the following at ''​/​etc/​apache2/​conf.d/​userdata/​geoip.conf''​
  
   <​IfModule mod_geoip.c>​   <​IfModule mod_geoip.c>​
Line 271: Line 276:
   </​IfModule>​   </​IfModule>​
  
-Tested ​from an IP x.x.x.x ​(NG/​Nigeria/​-), it should be blocked but it didnot.+Testing ​from an IP in NG/​Nigeria/​- ''​x.x.x.x''​, it should be blocked but it is not.
  
-Further analysis ​showing ​the above IP blongs ​to North Carolina, US in that downloaded MaxMind database ​and look like the record on that old database is incorrrect. If the database is not kept up to date, it will result in incorrect information.+Further analysis ​shows the above IP belongs ​to North Carolina, US in the downloaded MaxMind database. It looks like the record on that old database is incorrrect. If the database is not kept up to date, it will result in incorrect information.
  
-You can keep the database up to date from time to time manually by doing a direct download ​of the database, or you can use the [[https://​dev.maxmind.com/​geoip/​geoipupdate/​|geoipupdate ​-tool]], so your system automatically keeps the file up to date whenever MaxMind ​updates the records in the database.+You can keep the database up to date from time to time manually by doing a direct download, or you can use the [[https://​dev.maxmind.com/​geoip/​geoipupdate/​|geoipupdate tool]], so your system automatically keeps the file up to date whenever MaxMind ​publishes an update.
  • Admin
  • Last modified: 2020/11/14 15:24
  • by Lisa Clarke