2010-10-08 4 views
2

Я использую веб-модуль FreePascal, предназначенный для apache cgi-bin с nginx.Какие правильные правила размещения nginx соответствуют только первому элементу пути в URI для исполняемого файла CGI?

Сам CGI называется spidersample.cgi и содержит модули, такие как привет, до свидания т.д.

С Apache, когда spidersample.cgi/Привет называется, spidersample.cgi запускается на выполнение , и передает управление связанной команде hello.

С Nginx вместо выполнения spidersample.cgi он лечит spidersample.cgi/привет как означающий привет файл в spidersample.cgi директории с, и возвращается с ошибкой 404, так как не существует такого каталог.

Я подозреваю, что это проблема с исправлением проблемы с некоторыми правилами перезаписи в файле конфигурации, и она публикуется ниже.

=================================

сервер { слушать 8118; имя_сервера localhost; access_log /var/log/nginx/sysman_access.log; index index.html; root/home/rchurch/Data/Lazarus/CgiApps;

location ~ \.cgi$ { 
      include /etc/nginx/fastcgi_params; 
      fastcgi_pass unix:/tmp/sysman_cgi.sock; 
      fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_n$ 
      fastcgi_param QUERY_STRING  $query_string; 
      fastcgi_param REQUEST_METHOD $request_method; 
      fastcgi_param CONTENT_TYPE  $content_type; 
      fastcgi_param CONTENT_LENGTH $content_length; 
    } 

}

====================================== ============================

ответ

0

местоположение ~ .cgi $ будет соответствовать spidersample.cgi // $ означает конец строки

spidersample.cgi/hello место расположения ~ (. +) Cgi/hello or (. +) Cgi (. *)