Добрый день!<div><br></div><div>Нет ли новостей на этот счет? Все же хочется транслировать tcp udp запросы изве в бэкенд, который умеет только udp (dns сервис).<br><br>On Wednesday, 6 July 2016, Pavel Odintsov <<a href="mailto:pavel.odintsov@gmail.com">pavel.odintsov@gmail.com</a>> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Тут вопрос сложный. Конкретно мне от TCP нужна возможность принять от<br>
клиента не более XX байт запроса, передать их бэкэнду, забрать его<br>
ответ и раздать клиенту по TCP. Мне нужен spoon feeding в чистом виде.<br>
<br>
Если клиент прислал запрос по TCP больше, чем 65к (сколько предельно<br>
лезет в UDP) вполне разумно ожидать, что в этом случае он будет<br>
дропнут.<br>
<br>
2016-07-06 19:26 GMT+03:00 Konstantin Tokarev <<a href="javascript:;" onclick="_e(event, 'cvml', 'annulen@yandex.ru')">annulen@yandex.ru</a>>:<br>
><br>
><br>
> 06.07.2016, 17:48, "Pavel Odintsov" <<a href="javascript:;" onclick="_e(event, 'cvml', 'pavel.odintsov@gmail.com')">pavel.odintsov@gmail.com</a>>:<br>
>> Очень жаль, но технических преград получается этому нету?<br>
><br>
> Протоколы, основанные на UDP, часто зависят от того, что каждая датаграмма содержит независимое сообщение. Примитивное преобразование TCP -> UDP, которое можно было бы сделать в универсальном сервере вроде Nginx, будет разбивать непрерывный TCP-поток на датаграммы произвольным образом. Если этот вариант устраивает, тогда технических препятствий действительно нет. В противном случае в nginx придется реализовать отдельный протокол для пересылки датаграмм через TCP, а это уже более серьезная доработка<br>
><br>
>> Вопрос сугубо в том, что нет опции для поддержки этой фичи?<br>
>><br>
>> On Wednesday, 6 July 2016, Roman Arutyunyan <<a href="javascript:;" onclick="_e(event, 'cvml', 'arut@nginx.com')">arut@nginx.com</a>> wrote:<br>
>>> Добрый день,<br>
>>><br>
>>> On Wed, Jul 06, 2016 at 04:55:38PM +0300, Pavel Odintsov wrote:<br>
>>>> Всем привет!<br>
>>>><br>
>>>> Очень нравится модуль stream - прекрасная фишка ;)<br>
>>>><br>
>>>> Но захотелось немного странного, имеется UDP сервер, к которому<br>
>>>> хочется добавить "быстрый" TCP и TLS силами Nginx.<br>
>>>><br>
>>>> Но проблема в том, что  при вот такой конфигурации:<br>
>>>> stream {<br>
>>>>     upstream backend {<br>
>>>>         server <a href="http://127.0.0.1:1122" target="_blank">127.0.0.1:1122</a> weight=5;<br>
>>>>         server <a href="http://127.0.0.22:1122" target="_blank">127.0.0.22:1122</a> weight=1;<br>
>>>>     }<br>
>>>>     server {<br>
>>>>         # Listen UDP<br>
>>>>         listen <a href="http://127.0.0.1:53" target="_blank">127.0.0.1:53</a> udp;<br>
>>>>         # Listen TCP<br>
>>>>         listen <a href="http://127.0.0.1:53" target="_blank">127.0.0.1:53</a>;<br>
>>>><br>
>>>>         # Listen TLS/SSL<br>
>>>>         listen <a href="http://127.0.0.1:853" target="_blank">127.0.0.1:853</a> ssl;<br>
>>>>         proxy_connect_timeout 1s;<br>
>>>>         proxy_timeout 3s;<br>
>>>>         proxy_pass backend;<br>
>>>>         ssl_certificate_key /etc/ssl/private/ssl-cert-<wbr>snakeoil.key;<br>
>>>>         ssl_certificate /etc/ssl/certs/ssl-cert-<wbr>snakeoil.pem;<br>
>>>>     }<br>
>>>> }<br>
>>>><br>
>>>> Если запрос на Nginx приходит по UDP, то он отправляется на бэкэнд по<br>
>>>> UDP. Если приходит по TCP либо SSL - он уходит по TCP на бэкэнд.<br>
>>>><br>
>>>> Мне вот нужно, чтобы связь с бэкэндом была сугубо по UDP, но как этого<br>
>>>> достичь - не понимаю.<br>
>>><br>
>>> Пока никак.  Протокол проксирования всегда тот же, что и протокол клиента.<br>
>>><br>
>>> На текущий момент не ясно, насколько востребовано проксирование по<br>
>>> другому протоколу.<br>
>>><br>
>>> --<br>
>>> Roman Arutyunyan<br>
>>><br>
>>> ______________________________<wbr>_________________<br>
>>> nginx-ru mailing list<br>
>>> <a href="javascript:;" onclick="_e(event, 'cvml', 'nginx-ru@nginx.org')">nginx-ru@nginx.org</a><br>
>>> <a href="http://mailman.nginx.org/mailman/listinfo/nginx-ru" target="_blank">http://mailman.nginx.org/<wbr>mailman/listinfo/nginx-ru</a><br>
>><br>
>> --<br>
>> Sincerely yours, Pavel Odintsov<br>
>> ,<br>
>><br>
>> ______________________________<wbr>_________________<br>
>> nginx-ru mailing list<br>
>> <a href="javascript:;" onclick="_e(event, 'cvml', 'nginx-ru@nginx.org')">nginx-ru@nginx.org</a><br>
>> <a href="http://mailman.nginx.org/mailman/listinfo/nginx-ru" target="_blank">http://mailman.nginx.org/<wbr>mailman/listinfo/nginx-ru</a><br>
><br>
><br>
> --<br>
> Regards,<br>
> Konstantin<br>
><br>
> ______________________________<wbr>_________________<br>
> nginx-ru mailing list<br>
> <a href="javascript:;" onclick="_e(event, 'cvml', 'nginx-ru@nginx.org')">nginx-ru@nginx.org</a><br>
> <a href="http://mailman.nginx.org/mailman/listinfo/nginx-ru" target="_blank">http://mailman.nginx.org/<wbr>mailman/listinfo/nginx-ru</a><br>
<br>
<br>
<br>
--<br>
Sincerely yours, Pavel Odintsov<br>
</blockquote></div><br><br>-- <br>Sincerely yours, Pavel Odintsov<br>