Доступен (http://mailman.nginx.org/pipermail/nginx-announce/2014/00015...) новый выпуск основной ветки высокопроизводительного HTTP-сервера nginx 1.7.9 (http://nginx.org/), в котором продолжено развитие новых возможностей. Основные изменения (http://nginx.org/en/CHANGES):- Поддержка переменных в директивах expires, proxy_cache, fastcgi_cache, scgi_cache и uwsgi_cache;
- Поддержка загрузки секретных ключей с аппаратных токенов при помощи движков OpenSSL;- Новая директива autoindex_format (http://nginx.org/en/docs/http/ngx_http_autoindex_module.html...), позволяющая выбрать формат (html, xml, json и jsonp) вывода списка элементов директории;
- Налажено использование директив proxy_pass, fastcgi_pass, scgi_pass и uwsgi_pass внутри блоков "if" и "limit_except";
- Решены проблемы со сборкой nginx с использованием BoringSSL (форк (http://www.opennet.me/opennews/art.shtml?num=40049) OpenSSL от Google).URL: http://mailman.nginx.org/pipermail/nginx-announce/2014/00015...
Новость: http://www.opennet.me/opennews/art.shtml?num=41331
раз уж такая тема.. то спрошу:nginx умеет ли запускать fastcgi в режиме, когда сокет передаётся через файловый дескриптор (дескриптор под номером 0 или 1), а не через файловую систему?
nginx вообще не умеет запускать FastCGI. А через сокет файловые дескрипторы не передать...А Вы точно про _Fast_CGI спрашиваете?
> А через сокет файловые дескрипторы не передать...man unix ;)
> nginx вообще не умеет запускать FastCGI. А через сокет файловые дескрипторы не
> передать...
> А Вы точно про _Fast_CGI спрашиваете?вот обрати внимание на
https://github.com/Kozea/flipflop/blob/1.0/flipflop.py#L935
и на
https://github.com/Kozea/flipflop/blob/1.0/flipflop.py#L59
я чуток поясню что "Kozea/flipflop" -- это реализация прослойки: FastCGI-to-WSGI
например типичное (лёгкое) web-приложение будет иметь стэк:
{ apache_httpd + mod_fcgid } + { flipflop (pypi:flipflop) + bottle (pypi:bottle) + <user_code> }
> раз уж такая тема.. то спрошу:
> nginx умеет ли запускать fastcgi в режиме, когда сокет передаётся через файловый
> дескриптор (дескриптор под номером 0 или 1), а не через файловую
> систему?STDIN, STDOUT чтоле?
Нет, да и зачем?
Вы же понимаете, что при работе через "файловый" unix socket дисковая система не используется?
>> раз уж такая тема.. то спрошу:
>> nginx умеет ли запускать fastcgi в режиме, когда сокет передаётся через файловый
>> дескриптор (дескриптор под номером 0 или 1), а не через файловую
>> систему?
> STDIN, STDOUT чтоле?
> Нет, да и зачем?
> Вы же понимаете, что при работе через "файловый" unix socket дисковая система
> не используется?да, во время unix socket -- дисковая система не используется.
но файловая система *используется* (без использования дисковой системы).
это НЕ элегантно. :)
почему не элегантно(?), пояснение: в момент когда два процесса уже "знают" друг-друга (так как один из них родитель а второй потомок) -- уже нет смысла задействовать файловую систему лишь для того чтобы эти два процесса общались друг с другом. у этих процессов уже и так есть более тесная (родственная) связь!
в данном случае: более элегантно -- манипулировать файловыми дескрипторами и их номерами (нужные файловые дескрипторы -- наследуются во время fork(). а их номера сохраюятся неизменно у потомков)
а файловый дескриптор -- может ссылаться не только на PIPE но и на SOCKET. (вполне нормально что внутри STDIN -- будет положен не PIPE а SOCKET :))
более того! Linux умеет передавать (от одного процесса к другому) через PIPE -- новые файловые дескрипторы! и это опять-таки делается без использования файловой системы... хотя уже этот подход в FastCGI не используется..
В CGI все именно так, как вы хотите.
А FastCGI подразумевает, что к CGI процессу может подключаться не только родитель.
Поэтому там отдельный сокет, к которому могут подключаться остальные.
Может вам просто CGI использовать?
Например, так:
http://wiki.nginx.org/SimpleCGI
Или так:
https://www.howtoforge.com/serving-cgi-scripts-with-nginx-on...
Если уж мы про autoindex - было бы круто если бы нжинксовцы доперли сделать формат кастомизабельным. С возможностью поставить в HTML версии хидер/футер и задать стили.Существует некий гнусный хак который это делает, но там просто жесткач с хаком с закрытием <body> и переоткрытием заново как надо. Что намекает что разработчикам нжинкса не мешало бы достать кое-откуда руки и избавить окружающих от нужды делать ТАК.
Я просто оставлю это здесь:
> http://wiki.nginx.org/NgxFancyIndexНу да, рекомпилить нжинкс с сторонним кастомным модулем - это так круто. Чтобы по дефолту работало нормально и можно было настроить дириндекс без компилежки и хардкорного програминга вебни - наверное слишком жирно.
Большинству это просто не нужно, как и вообще auto_index. Поэтому в базе только самый простой вариант, а навороты отдельно. Такой же здравый подход и во многих других модулях nginx.
> Большинству это просто не нужно,Если посмотреть неткрафт - большинство вообще опачем довольно :).
> только самый простой вариант, а навороты отдельно.
Так полезли же делать более продвинутый. Ну и могли бы дать возможность кастомизить какой-нибудь там CSS'кой, типа того как в лайти сделано.
> Такой же здравый подход и во многих других модулях nginx.
Ща, погоди, по запросу энтерпрайзников они впихнут тебе здравого смысла :).
Все самое интересное они пихают в коммерческую версию.
> btw, это один из трех модулей, которыми я тролю irl дeбилиано/центософаперов. кхххМеня довольно сложно этим потроллить - потому что я умею собирать нжинкс, о великий специалист по бздению. Но я не считаю что компилять сервак ради настройки внешнего вида дириндекса - круто и правильно. Код должен быть отделен от данных и конфигурации.
И да, если что - я обычно пересобираю сетевые сервисы из соображений например защиты от взломов. Ну то-есть 100% прохождение "hardening-check" всем что висит в сеть, etc.
Открою страшную тайну - autoindex_format для этого и добавлен.
> Открою страшную тайну - autoindex_format для этого и добавлен.По нему это не очень заметно. Где, бэть, возможность кастомизации хтмлки без особых наворотов?
>> Где, бэть, возможность кастомизации хтмлки без особых наворотов?вам шашечки? а самому бекенд писать влом? вам хедер/футер, Ваньке картинки, Сашку кастомизируй по кукам, а Петьке вообще весь ПХП или еще какую срань засунь для генерации той страницы.
> вам шашечки?Ну как бы даже простой как топор лайти позволяет поменять вид страницы парой несложных фокусов. Без хардкорного кодинга целой вебаппы перекидывающийся с "бэкэндом" JSONом и тем более всякого инопланетного булшита с XML и тем паче XSLT.
> срaнь засунь для генерации той страницы.
ЧСХ генераторов дирлистинга на пыхе - хоть отбавляй. Они, конечно, работать будут. Но это из базуки по мухам.
autoindex_format xml + xslt
Да в ж...у такое счастье. Это решение для инопланетян.
Конечно лучше сделать +100500 директив и программировать хтмл на си
> Конечно лучше сделать +100500 директив и программировать хтмл на сиНет, xslt им не подходють, php не подходють, радужно-модерновый мальчик саммонят юнит-файлы имени команданте леонсио. Вива ля революсион!
> Конечно лучше сделать +100500 директив и программировать хтмл на сиВыбирая между XML+XSLT и си - я натурально лучше свой индексер на си накатаю. Или накрайняк нечто перекидывающееся JSом с нжинксом в формате JSON. Но это как-то явно больше возни чем хотелось бы для небольшой кастомизации дириндекса.
> autoindex_format xml + xsltон не умеет так.
он=аноним
> он не умеет так.
> он=анонимДык, блин, этот ваш XSLT - для тех кто с другой планеты. Хотя там json еще есть, конечно, но кодить подобие вебаппы под дириндексер - гм, как-то это крутовато.
> Существует некий гнусный хак который это делает, но там просто жесткач с
> хаком с закрытием <body> и переоткрытием заново как надоНу, никто ж не обещал, что в PHP будет легкох!
> Ну, никто ж не обещал, что в PHP будет легкох!Так там прикол как раз в том что это сделали без пыха :)
Пруф: https://news.ycombinator.com/item?id=7317646 (пага даунлоада правда что-то в ауте).
Смысл такой что оно использует модуль http addition (который чаще всего есть в полных сборках) и далее хакает пагу сперва закрывая <body> а потом начиная новый документ, где может неплохо откастомизить.
##>>>сделать формат кастомизабельным. С возможностью поставить в HTML версии
##>>>хидер/футер и задать стили.
>> Ну, никто ж не обещал, что в PHP будет легкокс!
> Так там прикол как раз в том что это сделали без пыха
> :)Зевс меня покарал, это понятно. Немощностью выразить свою иронию и непониманием оной частью читателей. Чтоб всем понятно было:
ХВАТИТ ДЕЛАТЬ ИЗ nginx БЛОАТВАРЕ! ДЛЯ ХОЧУ ЭТУ СТРАНИЧКУ РАЗ-ВОТ-ЭДАК УЖЕ ЕСТЬ НЕ В НЁМ!
___Извините, что кричу, нервы наверное. Пойду отварчика хлебну. Помяну юниксвей.
> - Налажено использование директив proxy_pass, fastcgi_pass, scgi_pass и uwsgi_pass внутри
> блоков "if" и "limit_except";Вот это вот непонятно для чего.
Игорь Сысоев неоднократно тыкал всех в рассылке в "if is evil".
Данный функционал не дает ничего нового, если учесть, что работает конструкция "proxy_pass $var".
В оригинале сказано, что исправлен баг в этом месте. Про "налажено" - это вольная интерпретация автора новости.
> Игорь Сысоев неоднократно тыкал всех в рассылке в "if is evil".Ну как, они тепеь коммерческая компания. Так что если клиент хочет с комфортом прострелить пятку - надо ему дать пистолет и патроны и показать как этим пользуется. Он за это деньги заплатил. Можно заключить партнерство с клиникой и держать медика поблизости - на случай если клиенту вдруг не понравится результат его идеи.
> Ну как, они тепеь коммерческая компания.Коммерческая компания, продающая что?
Правильно, nignx plus с поддержкой.
А в рамках поддержки клиенту и рассказывают, как оптимизировать конфиг.
Сысоеву уже давно пора сделать конфиг nginx Тьюринг-полным, а то надоели эти встраиваемые луа и перлы.
В версии 2, Сысоев обещал javascript из коробки.
Пропал калабуховский дом :(
а оно напрямую с SQL БД как-нить может ?
как Апач в свое время через апи мог. или у полосатых через ISAPI мог.
повторюсь "без костылей", НАПРЯМУЮ.
> а оно напрямую с SQL БД как-нить может ?
> как Апач в свое время через апи мог. или у полосатых через
> ISAPI мог.
> повторюсь "без костылей", НАПРЯМУЮ.