Šis straipsnis yra veidrodinis mašininio vertimo straipsnis, spauskite čia norėdami pereiti prie originalaus straipsnio.

Rodinys: 15060|Atsakyti: 0

[Žiniatinklis] Priekinis nginx ir back-end nginx serveris įrašo pradinio kliento IP adresą

[Kopijuoti nuorodą]
Paskelbta 2014-11-03 09:53:23 | | |

Šis modulis leidžia mums pakeisti kliento IP adreso reikšmę kliento užklausos antraštėje (pvz., X-Real-IP arba X-Forwarded-For).

    Ši funkcija yra labai naudinga "Nginx" serveriams, jei "Nginx" veikia už kai kurių 7 lygmens apkrovos balansavimo tarpinių serverių, nes vietinis kliento užklausos IP (tai yra kliento užklausos adresas) pridedamas prie kliento IP adreso antraštės, kai pereinama per 7 lygmens tarpinį serverį, kad galinė "Nginx" galėtų gauti kliento IP adreso reikšmę. Modulis nėra įdiegtas pagal numatytuosius nustatymus, todėl jei norite naudoti modulį, kompiliuodami diegimą turite pridėti parinktį --with-http_realip_module.

    Šio modulio naudojimo priežastis yra ta, kad jis leidžia foniniam serveriui įrašyti pradinio kliento IP adresą.

Konfigūracijos pavyzdys
set_real_ip_from 192.168.1.0/24;
set_real_ip_from 192.168.2.1;
real_ip_header X-Real-IP;


Pirštai    Užsakyti

   Modulyje pateikiamos tik dvi instrukcijos.

Instrukcijos pavadinimas: set_real_ip_from

Funkcija: Patikimo adreso nurodymas naudojant šią komandą bus pakeistas tiksliu IP adresu. Patikimi Unix lizdai taip pat gali būti naudojami nuo 0.8.22 versijos. Čia nustatytas IP nurodo sąsająNginxLakasarbaKalmaraiIPAdresas.

Sintaksė: set_real_ip_from [adresas| CIDR|" unix:"]

Numatytoji reikšmė: nėra

Naudojimo aplinka: http, serveris, vieta

Instrukcijos pavadinimas: real_ip_header

Funkcija: Ši komanda naudojama norint nustatyti, kurią antraštę naudoti IP adresui pakeisti. Jei naudojamas X-Forwarded-For, modulis pakeis išorinio tarpinio serverio IP adresą paskutiniu IP adresu X-Forwarded-For antraštėje.

Sintaksė: real_ip_header [X-Real-IP| X-persiųsta]

Numatytoji reikšmė: real_ip_header X-Real-IP

Naudojimo aplinka: http, serveris, vieta

Naudojimo atvejai   

    Šiame pavyzdyje mūsų aplinka yra tokia: yra du "Nginx" serveriai, vienas yra priekinė dalis, o kitas - užpakalinė dalis, priekinė dalis "Nginx" naudojama kaip tarpinis serveris, o užpakalinė dalis "Nginx" naudojama prieigai prie puslapio suteikti, taip pat yra klientas su šiuo IP adresu:

  

    Priekinė dalis: 192.168.7.10

    Užpakalinė dalis: 192.168.1.15

    Kliento pagrindinis kompiuteris: 218.239.201.36

    "Nginx" konfigūracija priekinėje dalyje atrodo taip:

serveris {
  klausytis 80;
  server_name www.xx.com;

vieta / {
    šaknis html;
    indekso index.html index.htm;
simbolių rinkinys UTF-8;
  }

Vieta /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 Host $host;
    proxy_redirect išjungti;
  }

……
}

Galinės sistemos "Nginx" konfigūracija yra tokia:

serveris {
  klausytis 80;
  server_name localhost;

  vieta / {
    šaknis /var/www/html;
    indekso index.html index.htm;
  }

Prieiga prie testo

    Jei pasieksime http://www.xx.com/865, jokių problemų, tai gali būti įprasta prieiga, prieigos žurnalas yra toks:

    Žurnalai iš frontend Nginx:

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

Žurnalai iš backend Nginx:

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

Matome, kad galiniuose "Nginx" žurnaluose įrašomas ne pradinio kliento IP adresas, o priekinės dalies "Nginx" IP adresas.

    Jei pakeisite foninio "Nginx" serverio konfigūraciją, kad:

serveris {
  klausytis 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;

  vieta / {
    šaknis html;
    indekso index.html index.htm;
  }

    ……
}

Tada dar kartą atliekame prieigos testą:

    Žurnalai iš 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-US; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12 GTB7.1"

     Žurnalai iš backend Nginx:

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

Galima pastebėti, kad šį kartą fone įrašomas kliento IP adresas.







Ankstesnis:nginx tarpinio serverio režimu, gaukite tikrąjį kliento IP adresą
Kitą:Diskas! X3.1 Visos X3 versijos apeiti priedų atsisiuntimo leidimą be kreditų Neribotas atsisiuntimo pažeidžiamumas
Atsakomybės apribojimas:
Visa programinė įranga, programavimo medžiaga ar straipsniai, kuriuos skelbia Code Farmer Network, yra skirti tik mokymosi ir mokslinių tyrimų tikslams; Aukščiau nurodytas turinys negali būti naudojamas komerciniais ar neteisėtais tikslais, priešingu atveju vartotojai prisiima visas pasekmes. Šioje svetainėje pateikiama informacija gaunama iš interneto, o ginčai dėl autorių teisių neturi nieko bendra su šia svetaine. Turite visiškai ištrinti aukščiau pateiktą turinį iš savo kompiuterio per 24 valandas nuo atsisiuntimo. Jei jums patinka programa, palaikykite autentišką programinę įrangą, įsigykite registraciją ir gaukite geresnes autentiškas paslaugas. Jei yra kokių nors pažeidimų, susisiekite su mumis el. paštu.

Mail To:help@itsvse.com