ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Нужен модуль.


  • To: nginx-ru@xxxxxxxxx
  • Subject: Re: Нужен модуль.
  • From: "Vipper" <nginx-forum@xxxxxxxx>
  • Date: Mon, 26 Nov 2012 10:30:11 -0500
  • Dkim-signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=tigger.jlkhosting.com; s=x; h=Date:Sender:From:References:In-Reply-To:Message-ID:Content-Transfer-Encoding:Content-Type:Subject:To; bh=Hz0epNC4lewECJoLarVQY5LzB9NFNmyRZ4qOrbA4F3U=; b=mJbyofneCkzXCO65uWYVMed50Z+5XXH9h9i96d/eb7A02kvE9DzhpIDfkZo6ZaVeEvD+93xnFkfJLtCYq+z5e6YKu81btfTzjavXF0zLFvPjLYz887r4QPG/MjRd3T/a;
  • In-reply-to: <50B387BF.6020905@comsys.com.ua>
  • References: <50B387BF.6020905@comsys.com.ua>

Sergey Smitienko Wrote:
-------------------------------------------------------
> Механизма передачи сокета через sendmsg, который бы позволил nginx'у
> "забыть" про соединение в nginx нет. Еще раз обращаю внимание, что
> даже
> если бы nginx
> мог отсылать сокет через sendmsg, принимающее приложение должно уметь
> принять
> сокет и отработать соединение. При этом nginx уже считал из приемного
> буфера в ядре
> заголовки запроса, и вернуть заголовки обратно в ядро так, чтоб ваш
> демон получил на
> вход http запрос, а не просто сокет, ожидающий передачи данных, не
> представляется
> возможным.
> 
> > Вот сейчас попробовал такой вариант.
> >
> > В конфиге nginx:
> >
> >   location = /xxx/daemon.js {
> >             proxy_pass http://unix:/tmp/node/test:/;
> > }
> >
> > В ноде :
> > http.createServer(function (req, res) {
> > ......
> > }).listen('/tmp/node/test');
> >
> > Все работает, запросы с этого location передаются ноду и там
> обрабатываются,
> > но опять таки nginx держит сокет, а надо - передал и забыл.
> >
> > Posted at Nginx Forum:
> http://forum.nginx.org/read.php?21,233223,233225#msg-233225
> >
> > _______________________________________________
> > nginx-ru mailing list
> > nginx-ru@xxxxxxxxx
> > http://mailman.nginx.org/mailman/listinfo/nginx-ru
> 
> _______________________________________________
> nginx-ru mailing list
> nginx-ru@xxxxxxxxx
> http://mailman.nginx.org/mailman/listinfo/nginx-ru

Вот кусок кода из модуля к nginx который работает у меня с 2004 года и
занимается как раз тем что я прошу.
                                if (!error) {
                                        buf[0] = 0;             /* null byte 
flag to recv_fd() */
                                        mysent = sendmsg (sockfd, &msg, 0);
                                        if (mysent == -1)
                                                rc = send_error(r, 
strerror(errno));
                                        else 
                                                //if ok, and now the socket in 
the voc-daemon, let's tell nginx to
close it:
                                                rc = NGX_HTTP_CLOSE;
                                }
                        }//end of if connect
                        close(sockfd);
                }//end of if socket()

Всё работает как надо. Но переделывать его у меня не хватает знаний.

Posted at Nginx Forum: 
http://forum.nginx.org/read.php?21,233223,233234#msg-233234

_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.