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 ?
Igor Sysoev wrote:
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$ одинаковое.
Не совсем понял, как это можно сделать :-)
location ~ \.php$ {
root /www/public_html;
fastcgi_pass unix:/tmp/enews.sock;
include /usr/local/etc/nginx/fastcgi.conf;
}
Просто unix сокет у всех хостов свой. (unix:/tmp/$user.sock)
|