ПРОЕКТЫ 


  АРХИВ 


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: запуск cgi бинарника c пар аметрами через web


  • To: "nginx-ru@xxxxxxxxx" <nginx-ru@xxxxxxxxx>
  • Subject: Re: запуск cgi бинарника c пар аметрами через web
  • From: Peter Leonov <gojpeg@xxxxxxxxx>
  • Date: Sun, 29 Nov 2009 17:34:19 +0300
  • Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:from:to :in-reply-to:content-type:content-transfer-encoding:x-mailer :mime-version:subject:date:references; bh=1KHuEk5Tk3X0K1BeK2v9q/sqliFKhNxIl75Y0rXvZ8g=; b=Qfa8ydDF38x5V3agFfvmGQ04iWJfybM3Qc5pg5Oaqhp4559c10kniU82Fk0WfC6Aw0 BBCDzh4Es7sVKpps9kl/a5qLMIXXvG5qmXIVzCdcpBD5m+KH5A5EunO4W9TgVwqOH9w7 BBzn61DlkQT5QqT8VU84WdZJaSdLf0z/9iOJ0=
  • Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:from:to:in-reply-to:content-type :content-transfer-encoding:x-mailer:mime-version:subject:date :references; b=FWQubF5PC1svUlYQr1pN2ZNQYhDExFENd6Q1nJXplW4SSAyP4kTCzb8CvZW2FNu9ZM cWV+USRvpmZrHkJF+u3dtToWBgnNGHahYN3WyoXQJZyYkggky6xdNC3Jt6dCA+KTsBpj p9GBJBM75cP387YqH2GsZURqDPFlL2BM9C/98=
  • In-reply-to: <20091129111300.GA96684@xxxxxxxxx>
  • References: <16847032.20091129004401@xxxxxxxxx> <loom.20091129T002309-431@xxxxxxxxxxxxxx> <1945949778.20091129105648@xxxxxxxxx> <20091129111300.GA96684@xxxxxxxxx>

On 29.11.2009, at 14:13, Igor Sysoev <igor@xxxxxxxxx> wrote:

On Sun, Nov 29, 2009 at 10:56:48AM +0300, actionmanager@xxxxxxxxx wrote:

как можно с помощью nginx запустить этот бин арник c
параметрами через веб и получить результат ?

Используйте http://www.acme.com/software/mini_httpd/

в моей ситуации будет лучше запускать бинарник через php скри пт с помощью exec, так будет экономнее по ресурсам. команду надо выпол нять
до 10 раз в день, она просчитывает данные и тут же выдаёт результат.

почему в nginx до сих пор нет поддержки выполнения cgi бинарников или
это никому не нужно ? :)

Потому что выполнять cgi форканьем текущего воркера, который в данный
момент обслуживает тысячи соединений - эта бессмысленная трата ресур сов. Нужно делать специальный менеджер cgi-процессов, в который проксиров ать запросы, что, по сути, мало чем отличается от проксирования mini_htt pd.
Если собрать mini_httpd с NO_OPENSSL=YES, он будет занимать в памяти
что-то около мегабайта (в основном разделяемая libc):

ps ax -o pid,ppid,%cpu,vsz,rss,wchan,command|egrep '(mini_httpd|PID)'
 PID  PPID %CPU   VSZ   RSS WCHAN  COMMAND
40017 40016 0.0 5864 1308 select /usr/local/sbin/mini_httpd -D - C /usr/local 40016 1 0.0 7068 1672 wait /bin/sh /usr/local/sbin/ mini_httpd_wrapper

mini_httpd_wrapper, возможно, можно убрать. У меня Mailman проксируе тся
в mini_httpd, запущенный с таким конфигом:

user=www
host=127.0.0.1
port=80
dir=/usr/local/mailman
cgipat=cgi-bin/*
pidfile=/var/run/mini_httpd.pid
xrealip=127.0.0.1

xrealip появляется в прилагаемом патче.
--
Игорь Сысоев
http://sysoev.ru

Как раз хотел в девеле поговорить об этом.

Мы все иногда грешим сиджиаем, и каждый использует что-то свое: apache, mini_httpd, или даже spawnfcgi+fcgiwrap. Первые два дублируют логику обработки HTTP. Третий же добавляет целый новый протокол. А главное все эти погремушки добавляют своих особенностей и глюков.

Интересно то, что вместо этих товарищей будет удобно запускать еще один энжинкс, но с модулем для запуска CGI-программ. Можно использовать один и тот же бинарник энжинкса, но с разными конфигами.

Тут важным мне кажется то, что всеми делами занят наш любимый и надежный друг, а не кто-то там еще. Даже не представляю свою работу без энжи. Спасибо вам, Игорь :)

С уважением,
Петр.

P.S. И патчить ничего не придется ;) _______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.