Alcune delle nostre interfacce prevedono modifiche alle informazioni utente, e queste interfacce permettono solo alla parte di accesso di adattarci, quindi abbiamo una whitelist IP su nginx.
È dotato dell'IP di uscita della parte di accesso.
Ecco i log del nostro accesso nginx.
nginx prende il nostro $remote_addr come vero IP, ma in realtà $http_X_Forwarded_For è l'IP reale dell'utente, $remote_addr è semplicemente l'indirizzo di rete privato del nostro f5 (utente -->f5 --> nginx), facendo sì che nginx prenda il nome sbagliato e l'utente che regola l'interfaccia è sempre 403.
Soluzione:
Nel modulo http plus
set_real_ip_from 10.10.10.122; Dì a nginx di prendere il valore di RealIP da lì
real_ip_header X-Real-IP; Il nome della variabile che memorizza il valore RealIP
Potere!
Qui iniziamo il rapporto nginx dopo aver aggiunto:
nginx: [emerg] unknown directive "set_real_ip_from" in /home/lnidmp/nginx/conf/nginx.conf:26
Quindi aggiungiamo il modulo realip e ricompiliamo nginx
1、cd /usr/local/nginx-1.6.3 2、./configura --prefisso=/usr/cmcc/nginx --con-http_stub_status_module --con-http_ssl_module --con-http_realip_module 3. Realizzare & Installare
Consigli:
1. set_real_ip_from si riferisce all'IP reale dell'utente ottenuto da cui il pre-proxy fidato
2. real_ip_header si riferisce all'IP utente della precedente trasmissione proxy da cui è stata ottenuta la parte HTTP del messaggio ricevuto
3. real_ip_recursive Se escludere ricorsivamente fino a ottenere l'IP utente (il predefinito è disattivato)
Per prima cosa, real_ip_header specificare un nome di intestazione http, che è X-Real-IP di default.
(1) Se c'è 1 IP, verificherà se l'IP del mittente si trova nella lista IP affidabile specificata dal set_real_ip_from. Se è affidabile, penserà che il valore IP in questo X-Real-IP sia il valore IP reale dell'utente indicato dal precedente agente, quindi assegnerà questo valore alla propria variabile $remote_addr; Se non è fidato, non verrà elaborato e $remote_addr resta l'indirizzo IP del mittente.
(2) Se X-Real-Ip ha più valori IP, ad esempio, il proxy precedente è impostato così: proxy_set_header X-Real-Ip $proxy_add_x_forwarded_for;
Quello che ottieni è una stringa di IP, quindi il valore di real_ip_recursive è cruciale in questo momento. nginx confronterà gli IP nella set_real_ip_from trust list da destra a sinistra nella lista IP. Se il real_ip_recursive è spento, quando si scopre che l'IP più a destra è affidabile, si pensa che il successivo IP (il secondo a destra) sia il vero IP dell'utente. Se il real_ip_recursive è attivo, verrà confrontato da destra a sinistra finché non trova un IP non affidabile. Poi copia anche il valore IP su $remote_addr.
Risorse:
https://help.aliyun.com/document_detail/54007.html
https://help.aliyun.com/knowledge_detail/55198.html
https://www.linux178.com/web/nginx-get-realip.html
|