Re: fastcgi и несколько document root

Alex Domoradov alex.hha на gmail.com
Чт Июн 9 12:47:30 UTC 2016


В таком случае

location ~ /api/(.*\.php)$ {
    alias /vhosts/example.com/public_html/api/web/$1;
    fastcgi_pass ...
    include fastcgi.conf;
}

при обращении к /api/i.php файл он ищет в
public_html/api/web/i.php/api/i.php

2016-06-09 15:22 GMT+03:00 Maxim Dounin <mdounin на mdounin.ru>:

> Hello!
>
> On Thu, Jun 09, 2016 at 02:22:21PM +0300, Alex Domoradov wrote:
>
> > Понял, еще один момент. А если мне надо получить такое поведение
> >
> > http://example.com/api/test.php -> /vhosts/
> > example.com/public_html/api/web/test.php
> >
> > как будет более правильно реализовать такое поведение? Сейчас реализовал
> > через set, но что то подсказывает, что это велосипед
> >
> > location ~/api/(.*\.php$) {
> >    set $file_path "$1";
> >    error_page 406 = @fastcgi-api;
> >    return 406;
> > }
> >
> > location @fastcgi-api {
> >    root /vhosts/example.com/public_html;
> >    fastcgi_param SCRIPT_FILENAME $document_root/api/web/$file_path;
> > }
>
> Проще всего сделать как-то так:
>
>     location ~ /api/(.*\.php)$ {
>         alias /vhosts/example.com/public_html/api/web/$1;
>         fastcgi_pass ...
>         include fastcgi.conf;
>     }
>
> (Где fastcgi.conf - стандартный конфиг из дистрибутива,
> устанавливающий SCRIPT_FILENAME в $document_root$fastcgi_script_name.)
>
> Или, если на самом деле любые запросы к /api/ должны смотреть в
> public_html/api/web/, как-то так:
>
>     location /api/ {
>         alias /vhosts/example.com/public_html/api/web/;
>
>         location ~ \.php$ {
>             fastcgi_pass ...
>             include fastcgi.conf;
>         }
>     }
>
> Отмечу также, что смысла в error_page/return/именованых
> location'ах в конфиге как он показан - нет.  Если смысл на самом
> деле есть - то можно и через set передать нужное.
>
> Отдельный вопрос: зачем все эти танцы, и не проще ли на
> файловой системе всё хранить в приличном виде, или как минимум
> сделать правильную структуру симлинками.
>
> --
> Maxim Dounin
> http://nginx.org/
>
> _______________________________________________
> nginx-ru mailing list
> nginx-ru на nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru
>
----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mailman.nginx.org/pipermail/nginx-ru/attachments/20160609/bea784bb/attachment.html>


Подробная информация о списке рассылки nginx-ru