Въпросът е свързан с Apache, mod_proxy.
Имам сайт с външен IP = X, вътрешен IP = 10.0.0.1 захранван от Apache, който работи като обратна прокси за изображения:
ProxyPassMatch *..(jpg|gif|png) http://10.0.0.2/handle_image.php
Когато клиент с IP = Y се свърже с IP = Xзаявявайки logo.jpg, Apache на 10.0.0.1 се свързва към 10.0.0.2 и извлича изображение от него; след това изпраща изображението на клиента на Y. Това означава, че данните за изображенията преминават през 10.0.0.1.
Искам клиента на Y да получи данни директно от10.0.0.2 като същевременно поддържа връзка с X; т.е. клиентът смята, че получава данни от X, но всъщност изпомпва изображение от 10.0.0.1, така че сървърната мрежа в X да не се зарежда от прехвърляне на изображения.
Както разбирам, трябва да е малко TCP сесия отвличане от сървъра на 10.0.0.2 на връзката между X и Y.
Как да направя това?
РЕДАКТИРАНЕ За да стане по-ясно, добавя графика.
Отговори:
0 за отговор № 1Действителният подход, който описвате, не е възможен с браузър. Не можете да инициирате връзка от бекенда да се браузърът, той трябва да дойде от браузъра до бекенда.
Какво можете да направите, е да използвате websockets, за да създадетепълен дуплекс връзка от задната страна към клиента чрез прокси сървър. По този начин, задната част може непрекъснато да прокарва нови неща в браузъра, но минава през прокси, който просто го тунелира от бекенда до браузъра в сурова форма.
С httpd (Apache), това е възможно чрез използване mod_proxy_wstunnel
Друга възможност е да постигнете това mod_lua
, но това е друга история.