Puncte:1

Redirecționare proxy inversă

drapel sa

Ai putea sa ma ajuti?

sudo echo "1" > /proc/sys/net/ipv4/ip_forward
sudo iptables -t nat -A PREROUTING -p tcp --dport 443 -j DNAT --to-destination 1.1.1.1
sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 2.2.2.2
sudo iptables -t nat -A POSTROUTING -j MASQUERADE

Folosesc aceste reguli iptables pentru a crea servere de echilibrare a încărcăturii. Distribuiesc doar conținut .mp4 și .mp3, dar aceste reguli folosesc lățimea de bandă a serverului pe care o folosesc pentru a face această redirecționare în loc de lățimea de bandă a serverului de destinație.

Cum pot rezolva asta? Utilizatorul trebuie să folosească lățimea de bandă a serverului de destinație în loc de serverul de redirecționare. Mulțumesc.

Lester avatar
drapel fr
„Utilizatorul trebuie să folosească lățimea de bandă a serverului de destinație în loc de serverul de redirecționare” De ce crezi că va funcționa? Trimiți trafic către serverul proxy și faci un NAT, bineînțeles că „lățimea de bandă va fi folosită”. Explorați o altă metodă, cum ar fi utilizarea unui proxy HTTP cu redirecționări.
Makoa avatar
drapel sa
Da, va fi folosită o lățime de bandă, dar serverul de redirecționare este supraîncărcat deoarece se pare că folosește aceste fișiere .mp4 și .mp3 în loc să redirecționeze doar utilizatorii către serverul de destinație. Serverul de destinație care ar trebui să furnizeze acele fișiere utilizatorilor, în loc de redirecționare. Nu este posibil să faci asta cu iptables?
vidarlo avatar
drapel ar
Nu, nu poți. Când faci rutare, traficul trece prin tine. Acestea fiind spuse, rutarea este în multe cazuri mai ieftină decât citirile de pe disc, așa că ar putea avea sens să existe un router capabil să gestioneze traficul. Routerele 10G nu sunt *atât de neobișnuite în zilele noastre.
Puncte:2
drapel ar

Cum pot rezolva asta? Utilizatorul trebuie să folosească lățimea de bandă a serverului de destinație în loc de serverul de redirecționare. Mulțumesc.

În general, există câteva moduri:

  1. Utilizați DNS Round Robin. Toate serverele au același nume, dar pe IP-uri diferite. Clienții vor alege un server aleatoriu.
  2. Utilizați redirecționări pentru a trimite utilizatorii către un server corespunzător.
  3. Utilizați Anycast. Toate serverele au același IP. Datorită modului în care funcționează rutarea, utilizatorii se vor conecta în general la unul local.

Round Robin DNS și redirecționări este, în general, ceva pe care îl puteți configura singur. Pentru anycast, va trebui fie să puteți anunța BGP în mai multe regiuni și să vă implicați cu mai mulți ISP din întreaga lume.

O altă idee excelentă ar fi să ignorați pur și simplu problema și să puneți o palmă în față unui serviciu precum Cloudflare sau Akami și să le lăsați să se ocupe de echilibrarea sarcinii. Dacă doriți mai mult control, este, de asemenea, posibil să găzduiți conținutul într-o soluție cloud, cum ar fi Azure sau Google Cloud, unde, într-o măsură mai mică, trebuie să vă faceți griji cu privire la încărcare pentru obținerea lucrurilor din stocarea blob.


Ce fac regulile tale

Cu regulile tale, rescrieți destinația pachetului și le trimiteți pe un alt server. În plus tu mascarează-le, astfel încât la serverele de backend pare că pachetul a venit de la interfața dvs. Backend-ul răspunde cu respect, trimițând pachetul de răspuns înapoi către front-end-ul dvs., care caută în tabelul de unde provine acea conexiune și trimite pachetul clientului original. Serverul - care este într-adevăr un router, trebuie să atingă pachetele pentru a rescrie antetele, iar toate pachetele trebuie să treacă prin acel server.

În multe cazuri, o astfel de configurare poate avea foarte mult sens. Este destul de banal să direcționezi mult trafic și este ușor și robust de configurat. Permite o înaltă disponibilitate, în cazul în care scăpați serverele care nu răspund, iar pentru încărcări care nu sunt cu stare, este extrem de ușor să creșteți capacitatea - atâta timp cât routerul dumneavoastră poate gestiona volumul de trafic.

Makoa avatar
drapel sa
Din păcate, ceea ce caut este mai mult legat de iptables
vidarlo avatar
drapel ar
Atunci lătrați în copacul greșit.
vidarlo avatar
drapel ar
@Makoa Am actualizat răspunsul pentru a explica de ce se comportă așa.
Makoa avatar
drapel sa
„Serverul – care este într-adevăr un router, trebuie să atingă pachetele pentru a rescrie anteturile, iar toate pachetele trebuie să treacă prin acel server”. - Acest lucru explică de ce serverul meu de redirecționare folosește multă lățime de bandă, vă mulțumesc mult

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.