Dalam tutorial ini, kami akan menunjukkan cara menginstal Modul Nginx Dengan GeoIP di CentOS. Bagi Anda yang belum tahu, modul GeoIP Nginx untuk penargetan geografis negara dan kota dapat diinstal dalam beberapa langkah mudah. Ini memberi Anda lapisan penargetan geografis yang memungkinkan Anda menampilkan beberapa bagian situs web Anda, atau bahkan membagi lalu lintas menurut lokasi geografis pengguna akhir. Secara default, saat Anda menginstal modul dari yum , Nginx tidak akan datang dengan modul GeoIP (Ini adalah modul:HttpGeoipModule), jadi kami akan menginstal dari sumber dan mengaktifkan modul.
Artikel ini mengasumsikan Anda memiliki setidaknya pengetahuan dasar tentang Linux, tahu cara menggunakan shell, dan yang terpenting, Anda meng-host situs Anda di VPS Anda sendiri. Instalasi cukup sederhana dan mengasumsikan Anda sedang berjalan di akun root, jika tidak, Anda mungkin perlu menambahkan 'sudo
' ke perintah untuk mendapatkan hak akses root. Saya akan menunjukkan kepada Anda melalui langkah-langkah instalasi Modul Nginx Dengan GeoIP pada sistem CentOS.
Instal Nginx Dengan Modul GeoIP
Langkah 1. Pertama, mari kita mulai dengan memastikan sistem Anda mutakhir.
sudo yum install epel-release sudo yum update
Langkah 2. Menginstal Semua Membutuhkan Ketergantungan.
Sekarang instal membutuhkan paket untuk kompilasi:
yum install gcc-c++ pre pcre-devel zlib zlib-devel -y
Langkah 3. Unduh dan Instal Nginx.
Sekarang kami mengunduh Nginx versi stabil terbaru dari sini dan membangunnya dengan dukungan modul 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
Setelah selesai dikompilasi, selanjutnya instal Nginx menggunakan perintah berikut:
make make install
Langkah 4. Buat skrip init untuk Nginx.
Pertama, tambahkan pengguna Nginx ke sistem. Ini adalah perintah satu kali:
useradd -r nginx
Kita perlu mengatur file /etc/init.d/nginx
untuk dijalankan saat sistem mulai:
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
Akhirnya, mulai Nginx:
systemctl restart nginx
Langkah 5. Memasang pustaka GeoIP pada sistem CentOS.
Sekarang jalankan perintah berikut untuk menginstal perpustakaan GeoIP
sudo yum install geoip geoip-devel
Setelah instalasi berhasil, perpustakaan akan disimpan di /usr/share/GeoIP/GeoIP.dat
Untuk update terbaru bisa di download disini.
Langkah 5. Konfigurasi Nginx
Selanjutnya, kita konfigurasikan file utama:
nano /etc/nginx/conf/nginx.conf
Tambahkan file berikut:
http { [...] geoip_country /usr/share/GeoIP/GeoIP.dat; map $geoip_country_code $allowed_country { default yes; CN no; } [...] }
Setelah itu, kita konfigurasikan virtual host Nginx:
nano /etc/nginx/conf.d/yourdomain.conf
Tambahkan baris berikut:
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 } [...] }
Konfigurasi di atas akan menerima semua IP dan hanya melarang dari IP China (CN). Tentang Kode negara di database GeoIP, Anda dapat merujuk di sini.
Selamat! Anda telah berhasil menginstal Nginx With GeoIP Module. Terima kasih telah menggunakan tutorial ini untuk menginstal Nginx With GeoIP Module pada sistem Linux. Untuk bantuan tambahan atau informasi berguna, kami sarankan Anda memeriksa official Situs web Nginx.