Только $host вместо $server_name в fastcgi_param всё равно приходится использовать там где "server_name _;".<br>Это корректно?<br><br><div class="gmail_quote">2010/9/20 Anton Koldaev <span dir="ltr"><<a href="mailto:koldaevav@gmail.com">koldaevav@gmail.com</a>></span><br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Благодарю. Таки воспользовался советом.<div><div></div><div class="h5"><br><br><div class="gmail_quote">
2010/9/20 Igor Sysoev <span dir="ltr"><<a href="mailto:igor@sysoev.ru" target="_blank">igor@sysoev.ru</a>></span><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div>On Mon, Sep 20, 2010 at 10:47:13AM +0400, Anton Koldaev wrote:<br>
<br>
> Не хочется иметь длинную простыню с аналогичными конфигами. Тем более, если<br>
> в server-е множество локейшенов, то ведь всю простыню придется повторять в<br>
> каждом из server {}.<br>
<br>
</div>Ну так всё равно можно применять прямую логику:<br>
<div><br>
server {<br>
server_name <a href="http://one.sitename.ru" target="_blank">one.sitename.ru</a><br>
</div> <a href="http://two.sitename.ru" target="_blank">two.sitename.ru</a><br>
<a href="http://three.sitename.ru" target="_blank">three.sitename.ru</a><br>
<div> <a href="http://www.sitename.ru" target="_blank">www.sitename.ru</a><br>
;<br>
...<br>
}<br>
<br>
server {<br>
listen 80 default_server<br>
server_name _;<br>
</div> ...<br>
<div><div></div><div>}<br>
<br>
> Обошел проблему выставив $host вместо $server_name:<br>
><br>
> fastcgi_param SERVER_NAME $host;<br>
> ><br>
><br>
> 2010/9/20 Igor Sysoev <<a href="mailto:igor@sysoev.ru" target="_blank">igor@sysoev.ru</a>><br>
><br>
> > On Mon, Sep 20, 2010 at 09:51:36AM +0400, Anton Koldaev wrote:<br>
> ><br>
> > > Привет<br>
> > > Имею вот такой server_name:<br>
> > ><br>
> > > > # Любой поддомен, кроме исключенных<br>
> > > > server_name ~(?<!^one|^two|^three|^www)\.sitename\.ru$;<br>
> > > ><br>
> > ><br>
> > > php-файлы проксируются на php-fpm:<br>
> > ><br>
> > > > location ~ \.(php|php4|php5|phtml)$ {<br>
> > > > fastcgi_pass <a href="http://127.0.0.1:9000" target="_blank">127.0.0.1:9000</a>;<br>
> > > > try_files $fastcgi_script_name =404;<br>
> > > ><br>
> > > > fastcgi_param SERVER_NAME $server_name;<br>
> > > ><br>
> > > ...<br>
> > > ><br>
> > ><br>
> > > Проблема в том, что в SERVER_NAME попадает именно регексп, а не,<br>
> > например,<br>
> > > <a href="http://one.sitename.ru" target="_blank">one.sitename.ru</a>.<br>
> > > Реврайт, после которого фейлится:<br>
> > ><br>
> > > > 2010/09/20 09:42:20 [notice] 19176#0: *24 rewritten data:<br>
> > > > "/urlrewriteprepend.php", args: "logout=yes&CODE=alozovaya", client:<br>
> > > > 94.198.48.35, server: ~(?<!^one|^two|^three|^www)\.sitename\.ru$,<br>
> > request:<br>
> > > > "GET /blogs/one/index.php?logout=yes&CODE=one HTTP/1.1", host: "<br>
> > > > <a href="http://one.sitename.ru" target="_blank">one.sitename.ru</a>", referrer: "<a href="http://one.sitename.ru/" target="_blank">http://one.sitename.ru/</a>"<br>
> > > ><br>
> > ><br>
> > > Что отдается в браузере:<br>
> > ><br>
> > > > Server not found<br>
> > > > Firefox can't find the server at ~(.<br>
> > > ><br>
> > ><br>
> > > В адресной строке:<br>
> > ><br>
> > > > http://<br>
> > > > ~%28/?%3C!^one|^two|^three|^www%29\.sitename\.ru$/?logout=yes&CODE=one<br>
> > > ><br>
> > ><br>
> > > Как через fastcgi_param передать верный servername?<br>
> ><br>
> > fastcgi_param SERVER_NAME $host;<br>
> ><br>
> > А зачем использовать инверсную логику - любой поддомен, кроме чего-то-там.<br>
> > Неужели не проще (легко читается, не правда ли ?) использовать прямую<br>
> > логику:<br>
> ><br>
> > server {<br>
> > server_name <a href="http://one.sitename.ru" target="_blank">one.sitename.ru</a>;<br>
> > }<br>
> ><br>
> > server {<br>
> > server_name <a href="http://two.sitename.ru" target="_blank">two.sitename.ru</a>;<br>
> > }<br>
> ><br>
> > server {<br>
> > server_name <a href="http://three.sitename.ru" target="_blank">three.sitename.ru</a>;<br>
> > }<br>
> ><br>
> > server {<br>
> > server_name <a href="http://www.sitename.ru" target="_blank">www.sitename.ru</a>;<br>
> > }<br>
> ><br>
> > server {<br>
> > listen 80 default_server;<br>
> > server_name _;<br>
> > }<br>
> ><br>
> ><br>
> ><br>
> > --<br>
> > Игорь Сысоев<br>
> > <a href="http://sysoev.ru" target="_blank">http://sysoev.ru</a><br>
> ><br>
> > _______________________________________________<br>
> > nginx-ru mailing list<br>
> > <a href="mailto:nginx-ru@nginx.org" target="_blank">nginx-ru@nginx.org</a><br>
> > <a href="http://nginx.org/mailman/listinfo/nginx-ru" target="_blank">http://nginx.org/mailman/listinfo/nginx-ru</a><br>
> ><br>
><br>
><br>
><br>
> --<br>
> Best regards,<br>
> Koldaev Anton<br>
<br>
> _______________________________________________<br>
> nginx-ru mailing list<br>
> <a href="mailto:nginx-ru@nginx.org" target="_blank">nginx-ru@nginx.org</a><br>
> <a href="http://nginx.org/mailman/listinfo/nginx-ru" target="_blank">http://nginx.org/mailman/listinfo/nginx-ru</a><br>
<br>
<br>
--<br>
Игорь Сысоев<br>
<a href="http://sysoev.ru" target="_blank">http://sysoev.ru</a><br>
<br>
_______________________________________________<br>
nginx-ru mailing list<br>
<a href="mailto:nginx-ru@nginx.org" target="_blank">nginx-ru@nginx.org</a><br>
<a href="http://nginx.org/mailman/listinfo/nginx-ru" target="_blank">http://nginx.org/mailman/listinfo/nginx-ru</a><br>
</div></div></blockquote></div><br><br clear="all"><br></div></div>-- <br>Best regards,<br><font color="#888888">Koldaev Anton<br>
</font></blockquote></div><br><br clear="all"><br>-- <br>Best regards,<br>Koldaev Anton<br>