ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Баг с location в nginx-devel-0.7.42 ?



On Wed, Mar 18, 2009 at 02:23:19PM +0200, Konstantin Belov wrote:

> Igor Sysoev wrote:
> >On Wed, Mar 18, 2009 at 12:12:22AM +0200, Konstantin Belov wrote:
> >
> >  
> >>P. S. рут задается переменными, потому что так легче управлять 
> >>конфигурацией при большом кол-ве шаблоных хостов.
> >>    
> >
> >А какой рут для "location ~* \.(jpg|jpeg|gif|css|js|png)$" ?
> >
> >Вообще, конфигурацию можно переписать так:
> >
> >       location / {
> >               root   /var/home/enews/www/public_html;
> >               index  index.php index.html;
> >       }
> >
> >       location ~ \.php$ {
> >               root   /www/public_html;
> >               fastcgi_pass unix:/tmp/enews.sock;
> >               include /usr/local/etc/nginx/fastcgi.conf;
> >       }
> >
> >       location ~* \.(jpg|jpeg|gif|css|js|png)$ {
> >               root   /var/home/enews/www/public_html;
> >               access_log   off;
> >               expires      30d;
> >       }
> >
> >и использовать fastcgi.conf $document_root.
> >
> Сейчас такой:
> 
> location ~* \.(jpg|jpeg|gif|css|js|png)$ {
>       root         $root_prefix$root;
>       access_log   off;
>       expires      30d;
> }
> 
> Просто перед оптравкой письма несколько раз конфиг правил (странно, что 
> сразу не заметил ошибку с root),
> поэтому строчка и затерялась.
> 
> 
> 
> Если root наследуется location от server, то может лучше уже так:

Да, так даже лучше.

> root   /var/home/enews/www/public_html;
> 
> location / {
>       index  index.php index.html;
> }
> 
> location ~ \.php$ {
>       root   /www/public_html;
>       fastcgi_pass unix:/tmp/enews.sock;
>       include /usr/local/etc/nginx/fastcgi.conf;
> }
> 
> location ~* \.(jpg|jpeg|gif|css|js|png)$ {
>       access_log   off;
>       expires      30d;
> }
> 
> 
> 
> /usr/local/etc/nginx/fastcgi.conf:
>       fastcgi_connect_timeout 3;
>       fastcgi_send_timeout 10;
>       fastcgi_index   index.php;
>       fastcgi_param   DOCUMENT_ROOT   $root;
>       fastcgi_param   SCRIPT_FILENAME $root$fastcgi_script_name;
>       fastcgi_param   PATH_TRANSLATED $root$fastcgi_script_name;
>       fastcgi_param   QUERY_STRING    $query_string;
>       fastcgi_param   REQUEST_URI     $request_uri;
>       fastcgi_param   REQUEST_METHOD  $request_method;
>       fastcgi_param   CONTENT_TYPE    $content_type;
>       fastcgi_param   CONTENT_LENGTH  $content_length;
>       fastcgi_param   SERVER_ADDR     $server_addr;
>       fastcgi_param   SERVER_PORT     $server_port;
>       fastcgi_param   SERVER_PROTOCOL $server_protocol;
>       fastcgi_param   SERVER_NAME     $server_name;
>       fastcgi_param   REMOTE_USER     $remote_user;
>       fastcgi_param   REMOTE_ADDR     $remote_addr;
>       fastcgi_param   REMOTE_PORT     $remote_port;

А здесь все $root нужно заменить на $document_root.
Кстати, всё это можно за'include'ить или описать дажена уровне http,
если оно у всех \.php$ одинаковое.

> Почему было сделано именно так, я уже сказать не могу (конфиг был написан 
> очень давно).
> Сейчас просто автоматически создаются vhost.conf (для каждого нового хоста) 
> на основе шаблона
> и подключаются через include в nginx.conf


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



 




Copyright © Lexa Software, 1996-2009.