In questo tutorial, ti mostreremo come installare Nginx With GeoIP Module su CentOS. Per chi non lo sapesse, il modulo Nginx GeoIP per il targeting geografico di paese e città può essere installato in pochi semplici passaggi. Ti offre un livello di targeting geografico che ti consente di mostrare alcune parti dei tuoi siti Web o persino di dividere il traffico in base alla posizione geografica degli utenti finali. Per impostazione predefinita, quando installi moduli da yum , Nginx non verrà fornito con il modulo GeoIP (questo è il modulo:HttpGeoipModule), quindi installeremo dal sorgente e il modulo attivo.
Questo articolo presuppone che tu abbia almeno una conoscenza di base di Linux, sappia come usare la shell e, soprattutto, che ospiti il tuo sito sul tuo VPS. L'installazione è abbastanza semplice e presuppone che tu sono in esecuzione nell'account root, in caso contrario potrebbe essere necessario aggiungere 'sudo
' ai comandi per ottenere i privilegi di root. Ti mostrerò l'installazione passo passo del modulo Nginx With GeoIP sul sistema CentOS.
Installa Nginx con modulo GeoIP
Passaggio 1. Innanzitutto, iniziamo assicurandoci che il tuo sistema sia aggiornato.
sudo yum install epel-release sudo yum update
Passaggio 2. L'installazione di tutte le dipendenze richiede.
Ora l'installazione richiede un pacchetto per la compilazione:
yum install gcc-c++ pre pcre-devel zlib zlib-devel -y
Passaggio 3. Scarica e installa Nginx.
Ora scarichiamo l'ultima versione stabile di Nginx da qui e la costruiamo con il supporto del modulo 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
Una volta completata la compilazione, installa Nginx usando il seguente comando:
make make install
Passaggio 4. Crea uno script di inizializzazione per Nginx.
In primo luogo, aggiungi l'utente Nginx al sistema. Questo è un comando una tantum:
useradd -r nginx
Dobbiamo impostare il file /etc/init.d/nginx
da eseguire all'avvio del sistema:
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
Infine, avvia Nginx:
systemctl restart nginx
Passaggio 5. Installazione della libreria GeoIP sul sistema CentOS.
Ora esegui i seguenti comandi per installare la libreria GeoIP
sudo yum install geoip geoip-devel
Dopo aver completato l'installazione, la libreria verrà archiviata in /usr/share/GeoIP/GeoIP.dat
Per gli ultimi aggiornamenti possono essere scaricati qui.
Passaggio 5. Configura Nginx
Successivamente, configuriamo il file principale:
nano /etc/nginx/conf/nginx.conf
Aggiungi il seguente file:
http { [...] geoip_country /usr/share/GeoIP/GeoIP.dat; map $geoip_country_code $allowed_country { default yes; CN no; } [...] }
Dopodiché, configuriamo l'host virtuale Nginx:
nano /etc/nginx/conf.d/yourdomain.conf
Aggiungi la seguente riga:
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 } [...] }
La configurazione sopra accetterà tutti gli IP e bandirà solo da China IP (CN). Per quanto riguarda il codice del paese nel database GeoIP, puoi fare riferimento qui.
Congratulazioni! Hai installato con successo Nginx With GeoIP Module. Grazie per aver utilizzato questo tutorial per installare Nginx With GeoIP Module sul sistema Linux. Per ulteriore aiuto o informazioni utili, ti consigliamo di controllare il Sito web di Nginx.