nginx memcached error.log
Igor Sysoev
is at rambler-co.ru
Fri Aug 15 15:54:08 MSD 2008
On Fri, Aug 15, 2008 at 02:31:06PM +0400, Антон Алехин wrote:
> Добрый день!
>
> Соединил nginx с memcached, все работает, однако в error.log пишется ошибка:
>
> 2008/08/15 14:04:33 [error] 7922#0: *747 open()
> "/usr/local/nginx/html/get_comments.php" failed (2: No such file or
> directory), client: 127.0.0.1, server: localhost, request: "GET
> /get_comments.php?t=1218793745&r=7209 HTTP/1.1", host: "localhost",
> referrer: "http://localhost/"
>
>
> конфиг:
>
> location / {
> ssi on;
> root /var/www/;
> index index.html index.php;
> }
>
> location ~* \.php$ {
> if ($request_uri ~* get_data\.php\?t=(\d+)\&r=\d+$) {
> add_header Content-Type "text/html; charset=windows-1251";
> set $memcached_key "$1";
> memcached_pass 127.0.0.1:11211;
> error_page 404 405 502 504 = @fastcgi;
> }
> error_page 404 405 502 504 = @fastcgi;
> }
>
> location @fastcgi {
> fastcgi_pass 127.0.0.1:8888;
> ...
>
> Т. е. если запрос не проходить по условию if ($request_uri ~*
> get_data\.php\?t=(\d+)\&r=\d+$), он почему-то ищется в default root и не
> найдя там файла по 404 отправляет запрос к fastsgi. Работать, то оно
> работает, но растущий error.log напрягает, видимо что-то все таки
> неправильно сделано.
Нужно добавить
root /var/www/;
в location ~* \.php$ или вынести на уровень сервера.
Конструкция
location ~* \.php$ {
if ($request_uri ~* get_data\.php\?t=(\d+)\&r=\d+$) {
кандидат для замены на
location ~* get_data\.php$ {
if ($args ~* t=(\d+)\&r=\d+$) {
}
}
location ~* \.php$ {
--
Игорь Сысоев
http://sysoev.ru
More information about the nginx-ru
mailing list