Sto costruendo il mio bilanciamento del carico in C ++. Ma mi manca una conoscenza fondamentale di come le richieste / risposte fluiscono in tale configurazione di routing.
Supponiamo che io abbia un'applicazione a www.application.com
e che DNS restituisce l'indirizzo IP di Load balancer quando richiesto. L'IP del cliente è client_ip
quello di Balancer balancer_ip
e server - server_ip
. Quindi ecco la sequenza di pacchetti generati in una rete:
1) Il primo pacchetto è generato dal client che richiede il bilanciamento del carico:
+-----------+-------------+---------+
| Source | Destination | Request |
+-----------+-------------+---------+
| client_ip | balancer_ip | /hello |
+-----------+-------------+---------+
2) Il secondo è generato dal bilanciamento che effettua la richiesta al server e al putting client_ip
in X-Forwarded-For
intestazione:
+-------------+-------------+---------+-----------------+
| Source | Destination | Request | X-Forwarded-For |
+-------------+-------------+---------+-----------------+
| balancer_ip | server_ip | /hello | client_ip |
+-------------+-------------+---------+-----------------+
3) Il server riceve la richiesta e risponde al bilanciamento del carico. X-Forwarded-For
rimane lo stesso.
+-----------+-------------+------------------+-----------------+
| Source | Destination | Response | X-Forwarded-For |
+-----------+-------------+------------------+-----------------+
| server_ip | balancer_ip | response_message | client_ip |
+-----------+-------------+------------------+-----------------+
4) Il sistema di bilanciamento riceve la risposta dal server e crea la propria risposta al client, prendendo l'indirizzo IP del client X-Forwarded-For
intestazione e metterlo in destinazione:
+-------------+-------------+------------------+
| Source | Destination | Response |
+-------------+-------------+------------------+
| balancer_ip | client_ip | response_message |
+-------------+-------------+------------------+
Supponiamo che tutte le comunicazioni siano eseguite in HTTP. È un modo corretto di eseguire reindirizzamenti tra client - load balancer - server? Ho guardato attraverso campi standard di richiesta / risposta e X-Forwarded-For
non era nella lista delle risposte standard e non standard. Inoltre, se questo è il modo corretto, le strutture popolari come Spring, Django, Node.js non verranno scartate X-Forwarded-For
intestazione?