<div dir="ltr">В документации же все описано. И ошибка вполне хорошо показывает где проблема. Вместо рута тут надо алиас указать.<br></div><div class="gmail_extra"><br><br><div class="gmail_quote">2013/6/11 Andrey Ermishin <span dir="ltr"><<a href="mailto:eas@etherway.ru" target="_blank">eas@etherway.ru</a>></span><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Здравствуйте, Maxim.<br>
<br>
Вы писали 10 июня 2013 г., 14:13:55:<br>
<br>
MD> Hello!<br>
<br>
MD> On Mon, Jun 10, 2013 at 12:23:13PM +0400, Andrey Ermishin wrote:<br>
<br>
>> Уважаемые all.<br>
>><br>
>> Пытаюсь мигрировать в apache на Nginx.<br>
>><br>
>> nginx установлен вместе с php5-fpm.<br>
>><br>
>> Возникла проблема с переносом правил для rewrite.<br>
>><br>
>> На апаче правила выглядят так:<br>
>><br>
>> RewriteEngine On<br>
>> RewriteCond %{REQUEST_URI} /playlist\.xspf<br>
>> RewriteRule (.*) channels.php [L,QSA]<br>
>><br>
>> на nginx пробую такую конструкцию:<br>
>><br>
>> server {<br>
>>     ...<br>
>>     location /eltex {<br>
>>         rewrite /playlist\.xspf /eltex/channels.php break;<br>
>>     }<br>
>>     ...<br>
>>     location ~ \.(php)$ {<br>
>>         ...<br>
>>         fastcgi_pass   php_backends;<br>
>>         ...<br>
>>     }<br>
>>     ...<br>
>> }<br>
>><br>
>><br>
>> Собственно  говоря в этом случае channels.php не выполняется, а просто<br>
>> отдается содержимое скрипта.<br>
<br>
MD> Во-первых, rewrite у вас не имеет шанса сработать, т.к. запрос<br>
MD> "/playlist.xspf" не имеет шансов попасть в location /eltex.<br>
<br>
MD> Во-вторых, даже если бы он сработал - запрос после "rewrite ...<br>
MD> break" обрабатывается в том же location, где был сделан rewrite.<br>
MD> А там у вас, судя по всему, никакого fastcgi_pass нет.  Если нужно<br>
MD> выбрать другой location - правильнее всего написать "rewrite ..<br>
MD> last".<br>
<br>
MD> Подробная документация есть тут:<br>
<br>
MD> <a href="http://nginx.org/r/location/ru" target="_blank">http://nginx.org/r/location/ru</a><br>
MD> <a href="http://nginx.org/r/rewrite/ru" target="_blank">http://nginx.org/r/rewrite/ru</a><br>
<br>
>> Если же в backend добавляю     location ~ \.(php|xspf)$<br>
>> то вообще error ~404<br>
<br>
MD> Что опять же ожидаемо, ибо файла /playlist.xspf у вас, судя по<br>
MD> всему, нет.<br>
<br>
>> Что делать? как правильно составить конфигурацию для nginx?<br>
<br>
MD> Совсем правильно как-то так:<br>
<br>
MD>     location = /playlist.xspf {<br>
MD>         fastcgi_pass php_backends;<br>
MD>         fastcgi_param SCRIPT_FILENAME<br>
MD> $document_root/eltex/channels.php;<br>
MD>         include fastcgi_params;<br>
MD>     }<br>
<br>
<br>
<br>
Спасибо разобрался.<br>
Теперь новая засада (что бы не плодить топики).<br>
<br>
В апаче была такая конфигурация сервера:<br>
<br>
Alias /dns /srv/http/dns/html<br>
<br>
<Directory /srv/http/dns/html><br>
        Options All<br>
        DirectoryIndex index.php<br>
<br>
</Directory><br>
<br>
Переношу ее в nginx<br>
<br>
location ^~ /dns/ {<br>
        root /srv/http/dns/html/;<br>
        access_log       /srv/http/dns/logs/access.log;<br>
        error_log       /srv/http/dns/logs/error.log;<br>
}<br>
<br>
в итоге при обращении <a href="http://url/dns/" target="_blank">http://url/dns/</a><br>
получаю ошибку в еррор лог:<br>
2013/06/11 10:46:23 [error] 11962#0: *5 open() "/srv/http/dns/html/dns/index.php" failed (2: No such file or directory)<br>
<br>
что не так?<br>
<br>
<br>
<br>
<br>
<br>
--<br>
Ермишин Андрей<br>
Руководитель департамента<br>
управления сети<br>
Оператор связи<br>
ООО "Шупашкартранс-К"<br>
телефон: (8352) 272008<br>
<br>
<a href="mailto:eas@etherway.ru">eas@etherway.ru</a><br>
<br>
_______________________________________________<br>
nginx-ru mailing list<br>
<a href="mailto:nginx-ru@nginx.org">nginx-ru@nginx.org</a><br>
<a href="http://mailman.nginx.org/mailman/listinfo/nginx-ru" target="_blank">http://mailman.nginx.org/mailman/listinfo/nginx-ru</a></blockquote></div><br></div>