Rumah  >  Artikel  >  Operasi dan penyelenggaraan  >  Cara menggunakan Nginx untuk melaksanakan kawalan akses berasaskan alamat IP

Cara menggunakan Nginx untuk melaksanakan kawalan akses berasaskan alamat IP

王林
王林asal
2023-08-02 12:05:112841semak imbas

Cara menggunakan Nginx untuk melaksanakan kawalan akses berdasarkan alamat IP

Pengenalan:
Dalam keselamatan rangkaian, kawalan akses melalui alamat IP adalah cara biasa. Sebagai pelayan web berprestasi tinggi, Nginx juga menyediakan modul yang sepadan untuk menyokong kawalan akses berdasarkan alamat IP. Artikel ini akan memperkenalkan cara menggunakan Nginx untuk melaksanakan kawalan akses berasaskan alamat IP, dan melampirkan contoh kod yang sepadan.

1. Modul kawalan akses Nginx
Nginx menyediakan banyak modul untuk melaksanakan fungsi yang berbeza. Sudah tentu, untuk melaksanakan kawalan akses berdasarkan alamat IP, kita perlu menggunakan modul kawalan akses Nginx. Terdapat dua modul kawalan akses Nginx yang biasa digunakan:

  1. ngx_http_access_module: Modul ini boleh mengawal hak akses kepada klien melalui fail konfigurasi, dan boleh membenarkan atau menafikan akses kepada alamat IP tertentu atau segmen alamat IP.
  2. ngx_http_geo_module: Modul ini boleh melaksanakan kawalan akses berdasarkan maklumat lokasi geografi pelanggan, dan boleh membenarkan atau menafikan akses ke kawasan tertentu.

Berikut menerangkan cara menggunakan kedua-dua modul ini.

2. Gunakan ngx_http_access_module untuk melaksanakan kawalan akses berasaskan alamat IP
modul ngx_http_access_module boleh melaksanakan kawalan akses berasaskan alamat IP dengan menambah membenarkan dan menafikan arahan dalam blok konfigurasi http, pelayan atau lokasi dalam fail konfigurasi Nginx.

Sebagai contoh, jika kami ingin membenarkan klien dengan alamat IP 192.168.0.1 untuk mengakses pelayan, dan menafikan klien dengan alamat IP 192.168.0.2 untuk mengakses pelayan, maka kami boleh mengkonfigurasinya dengan cara berikut:

http {
  server {
    listen       80;
    server_name  localhost;
    
    location / {
      deny 192.168.0.2;
      allow 192.168.0.1;
      deny all;
    }
  }
}

Dalam konfigurasi di atas, arahan penafian Ia digunakan untuk menafikan akses kepada alamat IP tertentu, manakala arahan membenarkan digunakan untuk membenarkan akses kepada alamat IP tertentu. menafikan semua bermakna kecuali alamat IP dalam senarai membenarkan, alamat IP lain akan dinafikan.

3. Gunakan ngx_http_geo_module untuk melaksanakan kawalan akses berasaskan alamat IP
modul ngx_http_geo_module boleh melaksanakan kawalan akses berasaskan alamat IP dengan menambahkan arahan geo dan geoip_country dalam blok konfigurasi http, pelayan atau lokasi dalam fail konfigurasi Nginx.

Pertama, anda perlu menggunakan arahan geoip_country dalam blok http fail konfigurasi untuk memuatkan fail pangkalan data lokasi geografi IP, contohnya:

http {
  geoip_country /path/to/GeoIP.dat;
}

Kemudian, gunakan arahan geo dalam pelayan yang sepadan atau blok konfigurasi lokasi untuk dipadankan negara yang sepadan dengan alamat IP dan melaksanakan kawalan akses seperti yang diperlukan. Sebagai contoh, jika kami hanya mahu membenarkan alamat IP dari tanah besar China untuk mengakses pelayan, kami boleh mengkonfigurasinya seperti berikut:

http {
  server {
    listen       80;
    server_name  localhost;
    
    location / {
      geo $country {
          default 0;
          CN 1;
      }
      
      if ($country = 0) {
          return 403;
      }
    }
  }
}

Dalam konfigurasi di atas, arahan geo digunakan untuk mendapatkan kod negara yang sepadan berdasarkan alamat IP , dan pembolehubah $country diperolehi kod negara. if ($country = 0) bermakna jika kod negara yang diperoleh ialah 0 (menunjukkan alamat IP selain daripada tanah besar China), halaman ralat 403 akan dikembalikan.

Kesimpulan:
Melalui modul kawalan akses Nginx, kami boleh melaksanakan kawalan akses dengan mudah berdasarkan alamat IP. Melalui konfigurasi yang munasabah, keselamatan dan kestabilan pelayan boleh dipertingkatkan dan pelayan boleh dilindungi daripada akses oleh alamat IP yang buruk. Saya harap artikel ini akan membantu anda memahami dan menggunakan modul kawalan akses Nginx Terima kasih kerana membaca.

Rujukan:

  1. Dokumentasi rasmi Nginx: http://nginx.org/en/docs/http/ngx_http_access_module.html
  2. Dokumentasi rasmi Nginx: http://nginx.org/en/docs/http/ngx_http_geo_geo html

Atas ialah kandungan terperinci Cara menggunakan Nginx untuk melaksanakan kawalan akses berasaskan alamat IP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn