to post messages and comments.

Читаю, как бороться с httpoxy в lighttpd. Пишем LUA скрипт, подключаем mod_magnet, стартуем. Окей. «mod_magnet.so не найден». Читаю доки по модулю на сайте сервера – пишут, что должен быть скомпилирован с поддержкой LUA. Смотрю «lighttpd -V» – есть LUA, а не работает. Файлика-то нет. Гуглю, нахожу вот это:
linode.com
Оказывается, нужно ставить отдельно lighttpd-mod-magnet, а мужики-то не знают. Не, я подозревала, что так и надо делать, просто название пакета не знала (руки не дошли до поиска), да и на сайте lighttpd (в доках по модулю) хотя бы написали >_<

Есть web сервер на lighttpd со включенными логами доступа через mod_accesslog. В логах иногда проскакивают обращения к серверу без указания хоста, т.е. в логах нечто типа `xxx.xxx.xxx.xxx — — [29/Jun/2013:21:32:43 +0400] "GET ..."`. Как можно отлавливать такие запросы? Конструкции вида $HTTP["host"] == "-" {...} и $HTTP["host"] == "" {...} не ловят такие запросы.

lighttpd буферизует все запросы к серверам, которые он проксирует. Если сервер отдаёт гиг — он послушно выделяет гиг памяти и отправляет содержимое юзеру только тогда, когда целиком примет его от бекенда. Отключить нельзя.
lighttpd не возвращает память, выделенную под буферы, операционной системе. Отключить нельзя.
Результат немного предсказуем.

Подскажите нечто попроще и повменяемее, пожалуйста. Хочу чтобы был cgi, вхосты, прокси, листинги директорий в utf8. Желательно рерайт и определение mime type через libmagic.

Жуйк, я тут забыл совсем сказать, что вчера ночью упоролся и перевел все сайты своей виртуалы на lighttpd.
Реврайты вордпрессов я поборол довольно тривиально, здесь все просто, но вот одна проблема меня терзает до сих пор:
У меня есть несколько виртуальных хостов, на которых должна быть либо статика (.html) либо листинг директории. На апаче все было ок и если я сейчас вырублю лайти и врублю апач — все заработает (благо конфигурацию я сделал такой, чтобы в любой момент можно было врубить другой сервер). Так вот эти сайты, где индексом является index.html или его нет и требуется сделать листинг, выводятся в 404.
А теперь подробности мистики:
-Виртхосты эти работают, т.к. если я там создам php-файл и попрошу его (phpinfo), то мне загрузится страница.
-index.html включен в настройках:
server.indexfiles = ("index.php", "index.html", "index.htm", "default.htm")-Если я вручную запрашиваю адрес — мне выдается тот же 404, что и без него.
-Листинг директорий в настройках включен и если бы даже индекса не было, должен был бы быть показ директории, но его не происходит.
dir-listing.activate = "enable"
Я в данный момент в растерянности и хочу понять что же происходит...

Потестил с еще одной виртуалы на другом сервере свою виртуалу apache benchmark'ом. Точнее постестил Apache и Lighttpd. Запустил оба по очереди отдельно и проверил на оперативу и на, собственно, результат ab.
При 10 конкурентных запросах лайти довел расход оперативы до 350-390 (160-200 МБ на сам лайти), апач же зохавал оперативу до гига с лишним (800-900 МБ на сам апач).
Далее самые интересные места из бенчмарка обоих серверов:

Lighttpd
Time taken for tests: 50.066 seconds
Complete requests: 500
Failed requests: 0
Requests per second: 9.99 [#/sec] (mean)
Time per request: 1001.320 [ms] (mean)
Time per request: 100.132 [ms] (mean, across all concurrent requests)
Transfer rate: 210.05 [Kbytes/sec] received

Apache
Time taken for tests: 56.165 seconds
Complete requests: 500
Failed requests: 129
(Connect: 0, Receive: 0, Length: 129, Exceptions: 0)
Requests per second: 8.90 [#/sec] (mean)
Time per request: 1123.304 [ms] (mean)
Time per request: 112.330 [ms] (mean, across all concurrent requests)
Transfer rate: 186.66 [Kbytes/sec] received

Думается мне, после некоторых тестов переезд моей виртуалки на лайти будет оправдан. Можно, конечно, для экспериментов еще с nginx сравнить. А вообще, по идее, можно будет создать чистую стендовую виртуалу и там погонять три сервера. Но это как-нибудь потом.
P.S. Тесты проводил на главной странице форума клана: ironsquad.ru

Ну и ну. lighttpd, собранный clang'ом, работает так, что cgit по cgi работает чуть лучше, чем никак, тогда как собранный gcc — нормально. Причём раньше такой хуйни не было. Не было печали — апдейтов накачали!

возникла такая ситуация: хочу сделать свой аналог dir-listing на lighttpd. в корневой папке лежит скрипт, который показывает её содержимое. помимо корневой имеется произвольное количество других папок. не могу придумать как при обращении к не корневым папкам вызывать скрипт из корня. варианты были такие:
— отключение dir-listing + кастомный обработчик ошибки 404, но внутрь обработчика не получается передать url, с которого пришла ошибка.
— вариации на тему url.rewrite и url.redirect тоже не работают, т.к. не позволяют делать рекурсивные вызовы.
это вообще возможно без копирования скрипта по всем вложенным папкам? возможно я что-то упустил?

Решил снова поглядеть на апач.
— есть .htaccess, тыкаться рутом из-за очередного rewrite лень
— mod_python, самостоятельно перезагружающий скрипты при изменении
— няшный прокси из mod_rewrite, с регекспами:
RewriteCond %{HTTP_HOST} (.*)\.vpn.eqx.su:81
RewriteRule ^(.*) %1.vpn.eqx [P]
И готов доступ к машинам из впн из тырнетов.
Последнее пока сломал, ибо без некоторой реструктуризации несекурно получается.

PS
А индексные странички у лайти куда более приятные...

Ответ @thefree, а то PM не доходит. lighttpd-1.4.28 под Gentoo — никаких проблем. Часом, ошибка не в PHP? И, часом, там не стоит буферизация фиксированного размера (4096 байт)? В последнем случае я натыкался на какие-то ошибки. Вылечилось просто через output_buffering = On (и, соответственно, zlib.output_compression = On)

На работе на проксе закрыли кучу портов, пришлось редиректить веб-морду трансмишна через lighttpd на 80-м.
Все оказалось до безумия просто:

<pre>
server.modules += ( "mod_rewrite", "mod_auth", "mod_proxy" )
url.rewrite-once += ( "^/transmission[/]?$" => "/transmission/web" )

$HTTP["url"] =~ "^/transmission/" {
proxy.server = (
"" => (
(
"host" => "127.0.0.1",
"port" => 9091
)
)
)
}
</pre>

как только теперь вайтлисты заставить работать?

Походу меня поимели, жуйк, не?
Oct 3 06:25:07 iliander su[13342]: Successful su for www-data by root
Oct 3 06:25:07 iliander su[13342]: + ??? root:www-data
Oct 3 06:25:07 iliander su[13342]: pam_unix(su:session): session opened for user www-data by (uid=0)
Oct 3 06:25:09 iliander su[13342]: pam_unix(su:session): session closed for user www-data
Oct 3 06:25:09 iliander su[13352]: Successful su for www-data by root
Oct 3 06:25:09 iliander su[13352]: + ??? root:www-data
Oct 3 06:25:09 iliander su[13352]: pam_unix(su:session): session opened for user www-data by (uid=0)
Oct 3 06:25:09 iliander su[13352]: pam_unix(su:session): session closed for user www-data

решил сестре отомстить проще.
этсамое, вот я в hosts пропишу втентакль как свой VDS, на VDS надо как-то настроить vhost чтоб при обращении к vkontakte.ru выполнялось обращение к реальному vkontakte.ru, а полученные и переданные данные перманентно сохранялись, после чего я их буду парсить и сдам ей через год в качестве страшной мести, пускай трепещет, ведь удаление ей не поможет :3
алсо хотелось бы то же самое сделать с login.icq.com, но с сохранением корреспонденции, ня
какие идеи будут?

У меня складывается ощущение, что разработка php ведётся по типу "а чего бы нам ещё такого сломать в следующем релизе/снапшоте?".
lighttpd+fcgi+php-cgi. Всё тихо мирно работало до момента обновления. После обновления видим 'No input file specified' и тишину в логах. Оказывается, теперь php очень привередлив к переменной doc_root, если она не соответствует указаной в конфиге веб-сервера. Очистил переменную в php.ini — заработало. Что они сломают дальше?
Про переписывание cacti под php5.3 я скромно промолчу. 2 часа чтобы оно хотя бы просто заработало...

приехали, значится. имеем openbsd 4.x, имеем lighttpd, при этом второй, зараза, не хочет от демона или ноубоди вешаться на 80 порт, мотивируя недостатком прав, от рута — влет. вопрос: в какую группу засунуть демона или ноубоди? или может кому надо пузо почесать, бубном позвенеть?