URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 100992
[ Назад ]

Исходное сообщение
"Выпуск HTTP-сервера nginx 1.7.9"

Отправлено opennews , 23-Дек-14 20:54 
Доступен (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 (форк (https://www.opennet.ru/opennews/art.shtml?num=40049) OpenSSL от Google).

URL: http://mailman.nginx.org/pipermail/nginx-announce/2014/00015...
Новость: https://www.opennet.ru/opennews/art.shtml?num=41331


Содержание

Сообщения в этом обсуждении
"Выпуск HTTP-сервера nginx 1.7.9"
Отправлено Xasd , 23-Дек-14 20:54 
раз уж такая тема.. то спрошу:

nginx умеет ли запускать fastcgi в режиме, когда сокет передаётся через файловый дескриптор (дескриптор под номером 0 или 1), а не через файловую систему?


"Выпуск HTTP-сервера nginx 1.7.9"
Отправлено Moomintroll , 23-Дек-14 21:37 
nginx вообще не умеет запускать FastCGI. А через сокет файловые дескрипторы не передать...

А Вы точно про _Fast_CGI спрашиваете?


"Выпуск HTTP-сервера nginx 1.7.9"
Отправлено myc , 23-Дек-14 23:06 
> А через сокет файловые дескрипторы не передать...

man unix ;)


"Выпуск HTTP-сервера nginx 1.7.9"
Отправлено Xasd , 01-Янв-15 15:13 
> 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> }


"Выпуск HTTP-сервера nginx 1.7.9"
Отправлено XoRe , 23-Дек-14 22:22 
> раз уж такая тема.. то спрошу:
> nginx умеет ли запускать fastcgi в режиме, когда сокет передаётся через файловый
> дескриптор (дескриптор под номером 0 или 1), а не через файловую
> систему?

STDIN, STDOUT чтоле?
Нет, да и зачем?
Вы же понимаете, что при работе через "файловый" unix socket дисковая система не используется?


"Выпуск HTTP-сервера nginx 1.7.9"
Отправлено Xasd , 01-Янв-15 15:02 
>> раз уж такая тема.. то спрошу:
>> nginx умеет ли запускать fastcgi в режиме, когда сокет передаётся через файловый
>> дескриптор (дескриптор под номером 0 или 1), а не через файловую
>> систему?
> STDIN, STDOUT чтоле?
> Нет, да и зачем?
> Вы же понимаете, что при работе через "файловый" unix socket дисковая система
> не используется?

да, во время unix socket -- дисковая система не используется.

но файловая система *используется* (без использования дисковой системы).

это НЕ элегантно. :)

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

в данном случае: более элегантно -- манипулировать файловыми дескрипторами и их номерами (нужные файловые дескрипторы -- наследуются во время fork(). а их номера сохраюятся неизменно у потомков)

а файловый дескриптор -- может ссылаться не только на PIPE но и на SOCKET. (вполне нормально что внутри STDIN -- будет положен не PIPE а SOCKET :))

более того! Linux умеет передавать (от одного процесса к другому) через PIPE -- новые файловые дескрипторы! и это опять-таки делается без использования файловой системы... хотя уже этот подход в FastCGI не используется..


"Выпуск HTTP-сервера nginx 1.7.9"
Отправлено XoRe , 07-Янв-15 11:04 
В CGI все именно так, как вы хотите.
А FastCGI подразумевает, что к CGI процессу может подключаться не только родитель.
Поэтому там отдельный сокет, к которому могут подключаться остальные.
Может вам просто CGI использовать?
Например, так:
http://wiki.nginx.org/SimpleCGI
Или так:
https://www.howtoforge.com/serving-cgi-scripts-with-nginx-on...

"Выпуск HTTP-сервера nginx 1.7.9"
Отправлено Аноним , 23-Дек-14 22:00 
Если уж мы про autoindex - было бы круто если бы нжинксовцы доперли сделать формат кастомизабельным. С возможностью поставить в HTML версии хидер/футер и задать стили.

Существует некий гнусный хак который это делает, но там просто жесткач с хаком с закрытием <body> и переоткрытием заново как надо. Что намекает что разработчикам нжинкса не мешало бы достать кое-откуда руки и избавить окружающих от нужды делать ТАК.


"Выпуск HTTP-сервера nginx 1.7.9"
Отправлено Аноним , 23-Дек-14 22:11 
Я просто оставлю это здесь:

http://wiki.nginx.org/NgxFancyIndex


"Выпуск HTTP-сервера nginx 1.7.9"
Отправлено Аноним , 24-Дек-14 01:17 
> http://wiki.nginx.org/NgxFancyIndex

Ну да, рекомпилить нжинкс с сторонним кастомным модулем - это так круто. Чтобы по дефолту работало нормально и можно было настроить дириндекс без компилежки и хардкорного програминга вебни - наверное слишком жирно.


"Выпуск HTTP-сервера nginx 1.7.9"
Отправлено angra , 24-Дек-14 04:31 
Большинству это просто не нужно, как и вообще auto_index. Поэтому в базе только самый простой вариант, а навороты отдельно. Такой же здравый подход и во многих других модулях nginx.

"Выпуск HTTP-сервера nginx 1.7.9"
Отправлено Аноним , 25-Дек-14 00:56 
> Большинству это просто не нужно,

Если посмотреть неткрафт - большинство вообще опачем довольно :).

> только самый простой вариант, а навороты отдельно.

Так полезли же делать более продвинутый. Ну и могли бы дать возможность кастомизить какой-нибудь там CSS'кой, типа того как в лайти сделано.

> Такой же здравый подход и во многих других модулях nginx.

Ща, погоди, по запросу энтерпрайзников они впихнут тебе здравого смысла :).


"Выпуск HTTP-сервера nginx 1.7.9"
Отправлено SubGun , 24-Дек-14 07:56 
Все самое интересное они пихают в коммерческую версию.

"Выпуск HTTP-сервера nginx 1.7.9"
Отправлено Аноним , 25-Дек-14 00:28 
> btw, это один из трех модулей, которыми я тролю irl дeбилиано/центософаперов. кххх

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

И да, если что - я обычно пересобираю сетевые сервисы из соображений например защиты от взломов. Ну то-есть 100% прохождение "hardening-check" всем что висит в сеть, etc.


"Выпуск HTTP-сервера nginx 1.7.9"
Отправлено cvsup1 , 23-Дек-14 23:02 
Открою страшную тайну - autoindex_format для этого и добавлен.

"Выпуск HTTP-сервера nginx 1.7.9"
Отправлено Аноним , 24-Дек-14 01:15 
> Открою страшную тайну - autoindex_format для этого и добавлен.

По нему это не очень заметно. Где, бэть, возможность кастомизации хтмлки без особых наворотов?


"Выпуск HTTP-сервера nginx 1.7.9"
Отправлено Будочки , 24-Дек-14 09:09 
>> Где, бэть, возможность кастомизации хтмлки без особых наворотов?

вам шашечки? а самому бекенд писать влом? вам хедер/футер, Ваньке картинки, Сашку кастомизируй по кукам, а Петьке вообще весь ПХП или еще какую срань засунь для генерации той страницы.


"Выпуск HTTP-сервера nginx 1.7.9"
Отправлено Аноним , 25-Дек-14 00:30 
> вам шашечки?

Ну как бы даже простой как топор лайти позволяет поменять вид страницы парой несложных фокусов. Без хардкорного кодинга целой вебаппы перекидывающийся с "бэкэндом" JSONом и тем более всякого инопланетного булшита с XML и тем паче XSLT.

> срaнь засунь для генерации той страницы.

ЧСХ генераторов дирлистинга на пыхе - хоть отбавляй. Они, конечно, работать будут. Но это из базуки по мухам.


"Выпуск HTTP-сервера nginx 1.7.9"
Отправлено Аноним , 24-Дек-14 01:00 
autoindex_format xml + xslt

"Выпуск HTTP-сервера nginx 1.7.9"
Отправлено Аноним , 24-Дек-14 01:14 
Да в ж...у такое счастье. Это решение для инопланетян.

"Выпуск HTTP-сервера nginx 1.7.9"
Отправлено Grisha76 , 24-Дек-14 01:46 
Конечно лучше сделать +100500 директив и программировать хтмл на си

"Выпуск HTTP-сервера nginx 1.7.9"
Отправлено Andrey Mitrofanov , 24-Дек-14 09:36 
> Конечно лучше сделать +100500 директив и программировать хтмл на си

Нет, xslt им не подходють, php не подходють, радужно-модерновый мальчик саммонят юнит-файлы имени команданте леонсио. Вива ля революсион!


"Выпуск HTTP-сервера nginx 1.7.9"
Отправлено Аноним , 25-Дек-14 00:33 
> Конечно лучше сделать +100500 директив и программировать хтмл на си

Выбирая между XML+XSLT и си - я натурально лучше свой индексер на си накатаю. Или накрайняк нечто перекидывающееся JSом с нжинксом в формате JSON. Но это как-то явно больше возни чем хотелось бы для небольшой кастомизации дириндекса.


"Выпуск HTTP-сервера nginx 1.7.9"
Отправлено тигар , 24-Дек-14 22:45 
> autoindex_format xml + xslt

он не умеет так.
он=аноним


"Выпуск HTTP-сервера nginx 1.7.9"
Отправлено Аноним , 25-Дек-14 00:52 
> он не умеет так.
> он=аноним

Дык, блин, этот ваш XSLT - для тех кто с другой планеты. Хотя там json еще есть, конечно, но кодить подобие вебаппы под дириндексер - гм, как-то это крутовато.


"Выпуск HTTP-сервера nginx 1.7.9"
Отправлено Andrey Mitrofanov , 24-Дек-14 09:32 
> Существует некий гнусный хак который это делает, но там просто жесткач с
> хаком с закрытием <body> и переоткрытием заново как надо

Ну, никто ж не обещал, что в PHP будет легкох!


"Выпуск HTTP-сервера nginx 1.7.9"
Отправлено Аноним , 25-Дек-14 00:48 
> Ну, никто ж не обещал, что в PHP будет легкох!

Так там прикол как раз в том что это сделали без пыха :)

Пруф: https://news.ycombinator.com/item?id=7317646 (пага даунлоада правда что-то в ауте).

Смысл такой что оно использует модуль http addition (который чаще всего есть в полных сборках) и далее хакает пагу сперва закрывая <body> а потом начиная новый документ, где может неплохо откастомизить.


"Выпуск HTTP-сервера nginx 1.7.9"
Отправлено Andrey Mitrofanov , 25-Дек-14 11:18 
##>>>сделать формат кастомизабельным. С возможностью поставить в HTML версии
##>>>хидер/футер и задать стили.
>> Ну, никто ж не обещал, что в PHP будет легкокс!
> Так там прикол как раз в том что это сделали без пыха
> :)

Зевс меня покарал, это понятно. Немощностью выразить свою иронию и непониманием оной частью читателей. Чтоб всем понятно было:

ХВАТИТ ДЕЛАТЬ ИЗ nginx БЛОАТВАРЕ! ДЛЯ ХОЧУ ЭТУ СТРАНИЧКУ РАЗ-ВОТ-ЭДАК УЖЕ ЕСТЬ НЕ В НЁМ!

___Извините, что кричу, нервы наверное. Пойду отварчика хлебну. Помяну юниксвей.


"Выпуск HTTP-сервера nginx 1.7.9"
Отправлено XoRe , 23-Дек-14 22:26 
> -  Налажено использование директив proxy_pass, fastcgi_pass, scgi_pass и  uwsgi_pass внутри
> блоков "if" и "limit_except";

Вот это вот непонятно для чего.
Игорь Сысоев неоднократно тыкал всех в рассылке в "if is evil".
Данный функционал не дает ничего нового, если учесть, что работает конструкция "proxy_pass $var".


"Выпуск HTTP-сервера nginx 1.7.9"
Отправлено PyMonty , 23-Дек-14 23:14 
В оригинале сказано, что исправлен баг в этом месте. Про "налажено" - это вольная интерпретация автора новости.

"Выпуск HTTP-сервера nginx 1.7.9"
Отправлено Аноним , 24-Дек-14 01:19 
> Игорь Сысоев неоднократно тыкал всех в рассылке в "if is evil".

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


"Выпуск HTTP-сервера nginx 1.7.9"
Отправлено XoRe , 05-Янв-15 21:10 
> Ну как, они тепеь коммерческая компания.

Коммерческая компания, продающая что?
Правильно, nignx plus с поддержкой.
А в рамках поддержки клиенту и рассказывают, как оптимизировать конфиг.


"Выпуск HTTP-сервера nginx 1.7.9"
Отправлено Аноним , 24-Дек-14 09:08 
Сысоеву уже давно пора сделать конфиг nginx Тьюринг-полным, а то надоели эти встраиваемые луа и перлы.

"Выпуск HTTP-сервера nginx 1.7.9"
Отправлено myc , 24-Дек-14 09:45 
В версии 2, Сысоев обещал javascript из коробки.

"Выпуск HTTP-сервера nginx 1.7.9"
Отправлено Аноним , 24-Дек-14 18:05 
Пропал калабуховский дом :(

"Выпуск HTTP-сервера nginx 1.7.9"
Отправлено Аноним , 25-Дек-14 02:50 
а оно напрямую с SQL БД как-нить может ?
как Апач в свое время через апи мог. или у полосатых через ISAPI мог.
повторюсь "без костылей", НАПРЯМУЮ.

"Выпуск HTTP-сервера nginx 1.7.9"
Отправлено Андрей , 25-Дек-14 06:37 
> а оно напрямую с SQL БД как-нить может ?
> как Апач в свое время через апи мог. или у полосатых через
> ISAPI мог.
> повторюсь "без костылей", НАПРЯМУЮ.

http://openresty.org/