Баг с location в nginx-devel-0.7.42 ?
Igor Sysoev
is at rambler-co.ru
Wed Mar 18 15:31:19 MSK 2009
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
More information about the nginx-ru
mailing list