Проблема с fastcgi

Igor Sysoev is at rambler-co.ru
Sat Mar 8 21:45:58 MSK 2008


On Sat, Mar 08, 2008 at 09:32:15PM +0300, square wrote:

> Здравствуйте, Igor.
> 
> Вы писали 8 марта 2008 г., 20:34:06:
> 
> > On Sat, Mar 08, 2008 at 08:14:57PM +0300, square wrote:
> 
> >> Здравствуйте, Igor.
> >> 
> >> Вы писали 8 марта 2008 г., 19:44:12:
> >> 
> >> > On Sat, Mar 08, 2008 at 07:36:11PM +0300, square wrote:
> >> 
> >> >> Здравствуйте, Igor.
> >> >> 
> >> >> Вы писали 8 марта 2008 г., 18:37:46:
> >> >> 
> >> >> > On Sat, Mar 08, 2008 at 06:24:36PM +0300, square wrote:
> >> >> 
> >> >> >> Вот такой конфиг:
> >> >> >> 
> >> >> >> --------------------------------------------------
> >> >> >> user  nobody;
> >> >> >> worker_processes  2;
> >> >> >> 
> >> >> >> events {
> >> >> >>     worker_connections  1024;
> >> >> >>     use kqueue;
> >> >> >> }
> >> >> >> 
> >> >> >> http {
> >> >> >>     include       mime.types;
> >> >> >>     default_type  application/octet-stream;
> >> >> >> 
> >> >> >>     sendfile        on;
> >> >> >> 
> >> >> >>     keepalive_timeout  65;
> >> >> >> 
> >> >> >>     gzip on;
> >> >> >> 
> >> >> >>     server {
> >> >> >>         listen   80;
> >> >> >>         server_name  domain.ru www.domain.ru;
> >> >> >>         charset utf-8;
> >> >> >> 
> >> >> >>         location / {
> >> >> >>             root   /usr/home/domain.ru/www;
> >> >> >>             index  index.php;
> >> >> >> 
> >> >> >>             if (-e $request_filename) {
> >> >> >>                 break;
> >> >> >>             }
> >> >> >> 
> >> >> >>             rewrite ^/(.*)$ /index.php?q=$1;
> >> >> >>         }
> >> >> >> 
> >> >> >>         location ~ \.php$ {
> >> >> >>             include /usr/local/etc/nginx/fastcgi_params;
> >> >> >> 
> >> >> >>             fastcgi_pass   127.0.0.1:1026;
> >> >> >> 
> >> >> >>             fastcgi_index  index.php;
> >> >> >> 
> >> >> >>             fastcgi_param  SCRIPT_FILENAME  /usr/home/domain.ru/www$fastcgi_script_name;
> >> >> >>         }
> >> >> >>     }
> >> >> >> }
> >> >> >> ------------------------------------------------
> >> >> >> 
> >> >> >> соответственно nginx + PHP + Spawn-fcgi.
> >> >> >> 
> >> >> >> Вроде бы настроено всё верно, но корректно работает только главная
> >> >> >> страница, всё остальное отдается без обработки, т.е. исходный код.
> >> >> >> 
> >> >> >> Почему так - непонятно, голову уже сломал. Возможно кто-то
> >> >> >> сталкивался? В архиве рассылки натыкался на сообщение, мол смотрите на
> >> >> >> порт 1026, но там вроде всё корректно работает, настраивал по статье
> >> >> >> http://www.lissyara.su/?id=1532. Да и главная страница отрабатывает
> >> >> >> как положено. Буду благодарен за любую подсказку, хотя бы в какую
> >> >> >> сторону копать.
> >> >> 
> >> >> > Не нужно без нужды использовать if/rewrite. Не нужно.
> >> >> 
> >> >> >      location / {
> >> >> >          root   /usr/home/domain.ru/www;
> >> >> >          index  index.php;
> >> >> >          log_not_found    off;
> >> >> >          error_page  404  = /index.php?q=$uri;
> >> >> >      }
> >> >> 
> >> >> спасибо, всё понял.
> >> >> 
> >> >> > Как выглядит URL страницы, которая отдаётся как исходник ?
> >> >> 
> >> >> Вот так работает:
> >> >>     http://www.domain.ru/
> >> >> 
> >> >> а так, нет:
> >> >>     http://www.domain.ru/articles/
> >> 
> >> > А что должно использоваться -
> >> > http://www.domain.ru/articles/index.php ?
> >> 
> >> Весь сайт состоит, собственно, только из http://www.domain.ru/index.php,
> >> где мне и нужно получать параметр q, в котором бы содержался
> >> любой запрошенный адрес, например "?q=http://www.domain.ru/articles/".
> 
> > А исходник чего выдаётся по запросу /articles/ ?
> 
> Выдается исходник http://www.domain.ru/index.php.

Странно, по идее, ни в перой, ни во втором конфигурации это не должно
происходить. Кроме варианта

-       rewrite ^/(.*)$ /index.php?q=$1;
+       rewrite ^/(.*)$ /index.php?q=$1 break;


-- 
Игорь Сысоев
http://sysoev.ru





More information about the nginx-ru mailing list