V tomto tutoriálu vám ukážeme, jak nainstalovat modul Nginx With GeoIP na CentOS. Pro ty z vás, kteří to nevěděli, může modul Nginx GeoIP pro geografické cílení na země a města nainstalovat v několika snadných krocích. Přináší vám vrstvu geografického cílení, která vám umožní zobrazit některé části vašich webových stránek, nebo dokonce rozdělit provoz podle geografické polohy koncových uživatelů. Ve výchozím nastavení, když instalujete moduly z yum , Nginx nebude dodáván s modulem GeoIP (toto je modul:HttpGeoipModule), takže nainstalujeme ze zdroje a aktivního modulu.
Tento článek předpokládá, že máte alespoň základní znalosti Linuxu, víte, jak používat shell, a co je nejdůležitější, hostujete svůj web na vlastním VPS. Instalace je poměrně jednoduchá a předpokládá, že běží v účtu root, pokud ne, možná budete muset přidat 'sudo
‘ k příkazům pro získání oprávnění root. Ukážu vám krok za krokem instalaci modulu Nginx With GeoIP Module na systém CentOS.
Nainstalujte Nginx s modulem GeoIP
Krok 1. Nejprve začněme tím, že zajistíme, aby byl váš systém aktuální.
sudo yum install epel-release sudo yum update
Krok 2. Instalace Vše vyžaduje závislost.
Nyní instalace vyžaduje balíček pro kompilaci:
yum install gcc-c++ pre pcre-devel zlib zlib-devel -y
Krok 3. Stáhněte a nainstalujte Nginx.
Nyní si odtud stáhneme nejnovější stabilní verzi Nginx a vytvoříme ji s podporou modulu GeoIP.
cd /opt/nginx/ wget https://nginx.org/download/nginx-1.21.5.tar.gz tar -zxf nginx-1.21.5.tar.gz cd nginx-1.21.5/ ./configure --prefix=/etc/nginx \ --sbin-path=/etc/nginx/sbin/nginx \ --conf-path=/etc/nginx/conf/nginx.conf \ --error-log-path=/var/log/nginx/error.log \ --http-log-path=/var/log/nginx/access.log \ --pid-path=/var/run/nginx.pid \ --lock-path=/var/run/ninx.lock \ --user=nobody \ --with-http_geoip_module \ --with-http_gzip_static_module \ --with-http_secure_link_module \ --without-mail_pop3_module \ --without-mail_imap_module \ --without-mail_smtp_module \ --without-http_ssi_module
Po dokončení kompilace dále nainstalujte Nginx pomocí následujícího příkazu:
make make install
Krok 4. Vytvořte init skript pro Nginx.
Nejprve přidejte do systému uživatele Nginx. Toto je jednorázový příkaz:
useradd -r nginx
Musíme nastavit soubor /etc/init.d/nginx
spustit při spuštění systému:
wget -O /etc/init.d/nginx https://gist.github.com/sairam/5892520/raw/b8195a71e944d46271c8a49f2717f70bcd04bf1a/etc-init.d-nginx chmod 0755 /etc/init.d/nginx chown root:root /etc/init.d/nginx
Nakonec spusťte Nginx:
systemctl restart nginx
Krok 5. Instalace knihovny GeoIP na systém CentOS.
Nyní spusťte následující příkazy pro instalaci knihovny GeoIP
sudo yum install geoip geoip-devel
Po úspěšné instalaci bude knihovna uložena v /usr/share/GeoIP/GeoIP.dat
Nejnovější aktualizace si můžete stáhnout zde.
Krok 5. Nakonfigurujte Nginx
Dále nakonfigurujeme hlavní soubor:
nano /etc/nginx/conf/nginx.conf
Přidejte následující soubor:
http { [...] geoip_country /usr/share/GeoIP/GeoIP.dat; map $geoip_country_code $allowed_country { default yes; CN no; } [...] }
Poté nakonfigurujeme virtuálního hostitele Nginx:
nano /etc/nginx/conf.d/yourdomain.conf
Přidejte následující řádek:
server { [...] if ($allowed_country = no) { return 444; # # This means the server will stop processing, returns error 444 (The connection was reset), # # And ignore always sending the response header. # # Replace 444 by 403 if you want } [...] }
Výše uvedená konfigurace bude akceptovat všechny IP adresy a zakáže pouze China IP (CN). O kódu země v databázi GeoIP se můžete podívat zde.
Blahopřejeme! Úspěšně jste nainstalovali Nginx With GeoIP Module. Děkujeme, že jste použili tento návod k instalaci modulu Nginx With GeoIP Module na systém Linux. Pro další pomoc nebo užitečné informace vám doporučujeme navštívit oficiální Web Nginx.