LINUX.ORG.RU

Использование inetd


0

0

Хочу написать простенький http-proxy. Стоит ли для такой цели использовать inetd? Насколько я понимаю, это избавляет от написания основного цикла — больше не приходится ждать самому подключения. То есть достаточно прочитать запрос из stdin, приконнектиться к серверу и вернуть ответ в stdout. Единственную проблему, которую сейчас вижу — для этого inetd требуется установить. А есть еще какие-то причины не использовать inetd? За и против, так сказать.

anonymous

inetd - это форк на каждый коннект, под нагрузкой можно и проблем огрести. Ну и еще у каждого процесса свое адресное пространство (будут проблемы если захочешь включить кэширование). Я когда-то сам писал такую же штуку (работала, кстати), там основной цикл на самом деле копеечный и несложный.

no-dashi ★★★★★
()
Ответ на: комментарий от no-dashi

А без inetd ведь тоже форк на каждый коннект? :) Основной цикл, естественно, несложный. Вообще насколько я знаю sendmail можно и отдельно запускать и через inetd. wu-ftpd, слышал, тоже. Как это реализуется?

anonymous
()
Ответ на: комментарий от anonymous

>> Без форка больше заранее заданного кол-ва коннектов держать не получится.

С чего бы это? Динамическая память + select/poll/etc.

Deleted
()
Ответ на: комментарий от no-dashi

> под нагрузкой можно и проблем огрести

Premature optimization is the root of all evil (c).

Для простенького прокси — вполне можно использовать. И тестировать проще будет, cat request | proxy | check-result

anonymous
()
Ответ на: комментарий от anonymous

>Как это реализуется?

Уже понял — там тупо параметр командной строки указывает, как запускаться. Я то думал, оно само как-то определяет, является ли stdout сокетом.

anonymous
()
Ответ на: комментарий от no-dashi

Юзать буду как фильтр для локалхоста(резать баннеры etc.). Что-то типа Privoxy хочу написать, но попроще(без библиотеки Perlовых регулярных выражений, со стандартными). Уже сделал каркас, основной код будет в отдельной функции, которая пока выводит hello world. С параметром -d работает как демон, без - как модуль для inetd.

anonymous
()

inetd хорош для процессов, которым не надо постоянно висет и жрать ресурсы. Мы например поднимали на VPS-е фтп через него - всё равно нечасто ходим:)

Но лучше таки тогда уж демона делать.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.