Artikel ini adalah artikel cermin dari terjemahan mesin, silakan klik di sini untuk melompat ke artikel aslinya.

Melihat: 15060|Jawab: 0

[Situs web] Server nginx front-end dan back-end nginx merekam alamat IP klien asli

[Salin tautan]
Diposting pada 03/11/2014 09.53.23 | | |

Modul ini memungkinkan kita untuk mengubah nilai alamat IP klien di header permintaan klien (misalnya, X-Real-IP atau X-Forwarded-For).

    Fitur ini sangat berguna untuk server Nginx jika Nginx bekerja di belakang beberapa proxy penyeimbangan beban Layer 7, karena IP lokal permintaan klien (yaitu, alamat permintaan klien) ditambahkan ke header alamat IP klien saat melewati proxy Layer 7, sehingga Nginx backend dapat memperoleh nilai alamat IP klien. Modul tidak diinstal secara default, jadi jika Anda ingin menggunakan modul, Anda perlu menambahkan opsi --with-http_realip_module saat mengkompilasi instalasi.

    Alasan menggunakan modul ini adalah memungkinkan server latar belakang untuk merekam alamat IP klien asli.

Contoh konfigurasi
set_real_ip_from 192.168.1.0/24;
set_real_ip_from 192.168.2.1;
real_ip_header X-Real-IP;


Jari    Pesan

   Modul hanya memberikan dua instruksi.

Nama instruksi: set_real_ip_from

Fungsi: Menentukan alamat tepercaya melalui perintah ini akan diganti dengan alamat IP yang tepat. Soket Unix tepercaya juga dapat digunakan mulai versi 0.8.22 dan seterusnya. IP yang ditetapkan di sini mengacu pada frontendNginxPernisatauCumi-cumidariIPAlamat.

Sintaks: set_real_ip_from [alamat| CIDR|" unix:"]

Nilai default: tidak ada

Lingkungan penggunaan: http, server, lokasi

Nama Instruksi: real_ip_header

Fungsi: Perintah ini digunakan untuk mengatur header mana yang akan digunakan untuk mengganti alamat IP. Jika X-Forwarded-For digunakan, modul akan mengganti alamat IP proxy front-end dengan alamat IP terakhir di header X-Forwarded-For.

Sintaks: real_ip_header [X-Real-IP| X-Diteruskan-untuk]

Nilai Default: real_ip_header X-Real-IP

Lingkungan penggunaan: http, server, lokasi

Kasus Penggunaan   

    Dalam contoh berikut, lingkungan kita seperti ini: ada dua server Nginx, satu adalah frontend dan yang lainnya adalah backend, frontend Nginx digunakan sebagai proxy, dan backend Nginx digunakan untuk menyediakan akses halaman, dan ada juga klien dengan alamat IP berikut:

  

    Nginx Frontend: 192.168.7.10

    Backend Nginx: 192.168.1.15

    Tuan rumah klien: 218.239.201.36

    Konfigurasi Nginx di frontend terlihat seperti ini:

server {
  dengarkan 80;
  server_name www.xx.com;

lokasi / {
    html akar;
    indeks index.html index.htm;
Charset UTF-8;
  }

lokasi /865 {
    proxy_pass http://192.168.3.139:80/;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Tuan Rumah $host;
    proxy_redirect mati;
  }

……
}

Konfigurasi Nginx untuk backend adalah sebagai berikut:

server {
  dengarkan 80;
  server_name localhost;

  lokasi / {
    root /var/www/html;
    indeks index.html index.htm;
  }

Mengakses pengujian

    Jika kita mengakses http://www.xx.com/865, tidak masalah, itu bisa menjadi akses normal, log aksesnya adalah sebagai berikut:

    Log dari frontend Nginx:

218.239.201.36 - - [30/Aug/2011:16:09:56 +0800] "DAPATKAN /865/ HTTP/1.1" 200 151 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-AS; rv:1.9.2.12) Tokek/20101026 Firefox/3.6.12 GTB7.1"

Log dari backend Nginx:

192.168.7.10 - - [30/Aug/2011:16:09:56 +0800] "DAPATKAN // HTTP/1.0" 200 151 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-AS; rv:1.9.2.12) Tokek/20101026 Firefox/3.6.12 GTB7.1"

Kami melihat bahwa log Nginx backend tidak mencatat alamat IP klien asli, tetapi alamat IP Nginx frontend.

    Jika Anda memodifikasi konfigurasi server Nginx latar belakang menjadi:

server {
  dengarkan 80;
  server_name localhost;
  set_real_ip_from 192.168.3.0/24;
set_real_ip_from 100.100.0.0/16;
  real_ip_header X-Real-IP;

  lokasi / {
    html akar;
    indeks index.html index.htm;
  }

    ……
}

Kemudian kami melakukan tes akses lagi:

    Log dari frontend Nginx:

218.239.201.36 - - [30/Aug/2011:16:10:28 +0800 "GET /865/ HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-AS; rv:1.9.2.12) Tokek/20101026 Firefox/3.6.12 GTB7.1"

     Log dari backend Nginx:

218.239.201.36 - - [30/Aug/2011:16:10:28 +0800] "DAPATKAN // HTTP/1.0" 304 0 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-AS; rv:1.9.2.12) Tokek/20101026 Firefox/3.6.12 GTB7.1"

Dapat dilihat bahwa kali ini latar belakang merekam alamat IP klien.







Mantan:mode proxy nginx, dapatkan alamat IP asli klien
Depan:Diskusikan! X3.1 Semua versi X3 melewati izin unduhan lampiran tanpa kredit Kerentanan unduhan tidak terbatas
Sanggahan:
Semua perangkat lunak, materi pemrograman, atau artikel yang diterbitkan oleh Code Farmer Network hanya untuk tujuan pembelajaran dan penelitian; Konten di atas tidak boleh digunakan untuk tujuan komersial atau ilegal, jika tidak, pengguna akan menanggung semua konsekuensi. Informasi di situs ini berasal dari Internet, dan sengketa hak cipta tidak ada hubungannya dengan situs ini. Anda harus sepenuhnya menghapus konten di atas dari komputer Anda dalam waktu 24 jam setelah pengunduhan. Jika Anda menyukai program ini, harap dukung perangkat lunak asli, pembelian pendaftaran, dan dapatkan layanan asli yang lebih baik. Jika ada pelanggaran, silakan hubungi kami melalui email.

Mail To:help@itsvse.com