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