У меня есть веб-сайт, и у меня есть несколько приложений fastcgi, которые я хочу вызвать - однако эти приложения не являются общедоступными напрямую - они обращаются к ним косвенно, через службу RESTFUL, которая затем будет использовать Curl (или какой-либо другой механизм. ), чтобы получить данные из приложения fgci.
У меня вопрос о пропускной способности. Предположим, я использую Curl или PHP readfile (), он включает указание URL-адреса - что-то вроде http: //localhost/fastcgi-bin/test.fgci
Итак, достаточно ли умен «сеть», чтобы знать, что адрес находится локально и, следовательно, ему не нужно выходить «наружу», или запрос все равно будет отправлен на внешний DNS, который разрешит адрес на IP-адрес моей машины?
По сути, я хочу знать, увеличит ли использование этой архитектуры мою пропускную способность или нет.
Любые пакеты, которые вы отправляете на тот же компьютер, должны выходить (и возвращаться) через ваш интерфейс обратной петли - они не будут выходить по сети. Вы не будете платить за них.
Вы можете убедиться в этом, просмотрев свои таблицы маршрутизации. Вы не упоминаете, какую платформу используете, поэтому я не могу привести конкретный пример, но с моего ноутбука:
sveiss@brakiri:~$ route get 192.168.1.1
route to: 192.168.1.1
destination: 192.168.1.1
interface: en1
flags: <UP,HOST,DONE,LLINFO,WASCLONED,IFSCOPE>
recvpipe sendpipe ssthresh rtt,msec rttvar hopcount mtu expire
0 0 0 0 0 0 1500 1198
sveiss@brakiri:~$ route get 192.168.1.63
route to: 192.168.1.63
destination: 192.168.1.63
interface: lo0
flags: <UP,HOST,DONE,STATIC>
recvpipe sendpipe ssthresh rtt,msec rttvar hopcount mtu expire
49152 49152 0 0 0 0 16384 0
sveiss@brakiri:~$ route get 127.0.0.1
route to: localhost
destination: localhost
interface: lo0
flags: <UP,HOST,DONE,LOCAL>
recvpipe sendpipe ssthresh rtt,msec rttvar hopcount mtu expire
49152 49152 0 0 0 0 16384 0
Посмотрите на interface:
линии: трафик на локальные для машины адреса (192.168.1.63 и 127.0.01) пересылается через lo0
, интерфейс обратной связи. Трафик, идущий в другом месте, будет выходить по сети через интерфейс en1
.
Что касается разрешения имен, вы правы в том, что если вы используете DNS-имя для своей машины, DNS-запрос и ответ могут выйти за пределы локального поля. Однако трафик приложения не будет: он будет следовать правилам в вашей таблице маршрутизации и использовать интерфейс обратной связи, как описано выше.
В зависимости от вашей ОС и конфигурации (включено ли кеширование DNS? Указано ли используемое вами DNS-имя в файле локальных хостов?) Объем полосы пропускания, потребляемой DNS-запросами, будет варьироваться от нуля до крошечного - на порядки меньше остальной ваш внешний трафик.
Любые пакеты обратной связи никогда не попадают в сеть, как указано выше. Вы не будете использовать пропускную способность для локальных запросов.