Мне кажется, что будет удобнее хранить отдельные функции моего сайта в отдельных двоичных файлах FCGI. Я хочу таких запросов:
http://mysite.com/funcA.fcgi
http://mysite.com/funcB.fcgi?action=go
Для перенаправления в соответствующие файлы:
/var/fcgi/funcA.fcgi
/var/fcgi/funcB.fcgi
Итак, в моем файле lighttpd.conf мне понадобится что-то вроде этого:
fastcgi.server =
( ".fcgi" =>
(( "bin-path" => "/var/fcgi",
"socket" => "tmp/fcgi.sock",
"check-local" => "disable"
))
)
Или, может быть, это должно было бы быть более похоже на это:
fastcgi.server =
( "funcA.fcgi" =>
(( "bin-path" => "/var/fcgi/funcA.fcgi",
"socket" => "tmp/fcgi.sock",
"check-local" => "disable"
))
),
( "funcB.fcgi" =>
(( "bin-path" => "/var/fcgi/funcB.fcgi",
"socket" => "tmp/fcgi.sock",
"check-local" => "disable"
))
)
Или мне вообще чего-то не хватает? Я могу запустить lighttpd только тогда, когда указывается один двоичный файл.
РЕДАКТИРОВАТЬ: Чтобы убедиться, что я ясно говорю: мне нужно для запроса типа mysite.com/x.fcgi
вызывать /var/fcgi/x.fcgi
, а также просьба к mysite.com/y.fcgi
вызывать /var/fcgi/y.fcgi
. Похоже, это должно быть довольно просто, но я не могу получить конфигурацию lighttpd, которая бы это сделала.
Кроме того, я не использую ничего интерпретируемого. Это скомпилированные двоичные файлы C ++ с использованием fcgi_stdio.h
заголовок.
Возможно, мне понадобится использовать mod_rewrite?
Поэтому мне кажется, что то, что я хочу сделать, невозможно или, по крайней мере, не предусмотрено FCGI. Когда вы вызываете www.mydomain.com/thing1.fcgi
, ты не начало thing1.fcgi
; это уже было сделано. Вы отправляете запрос к бесконечно работающему процессу FCGI, который вы пишете, в основе которого почти наверняка лежит бесконечный цикл, ожидающий запросов. Это просто природа FCGI и главное отличие от более ранней CGI.
На этот вопрос нетрудно ответить, если вы поймете, как работает FCGI. Думаю, я просто хотел.
https://redmine.lighttpd.net/projects/1/wiki/docs_modfastcgi Это можно сделать, несколько бинарных файлов в конфиге lighttpd.