Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Что значит эта ошибка ?
- To: nginx-ru@xxxxxxxxx
- Subject: Re: Что значит эта ошибка ?
- From: Sergey Shepelev <temotor@xxxxxxxxx>
- Date: Tue, 21 Apr 2009 22:36:49 +0400
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:in-reply-to:references :date:message-id:subject:from:to:content-type :content-transfer-encoding; bh=ZjFqVLWS1jxDifT30lmxZ9hCFsZUabuwe21refo31P0=; b=BU4oVXnHYVACfBDo4VNtF3Hnu+rKjF1PDqK8BY5GCt/EG4xtVhjnLSH6dhbjNiXJ3W kODDr9+Xpy3rNa2MvfkhymZlB/ZbzaMkywu1uoaonAaAYamt/x+e5kJT/YWP8wTrQmmW VGQoJrqvfVivyCX1WkXyUmSStxG0nLADPUEzY=
- Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type:content-transfer-encoding; b=ALI0tX76Jc3JQ7aJkLy/WHHsFZVEX7GfP2XUqGdHQ+7C4D84cPEeyjsiKXtL16v4WA IslvJORl4yfjR1YRHVSot76AJ+uR2SYapQAweNmh1aTuRLsOyeuKDB3OC0mdARbYMbIx 5YMGQMdr8DPsO0cV95uH8h4Yry31sLCXoABIY=
- In-reply-to: <3178F4451AAF4A55A429A1346DDC8DA2@maxhl>
- References: <2d8fb9950904210856n45cefe31o4092bc93335e1a1a@xxxxxxxxxxxxxx> <3178F4451AAF4A55A429A1346DDC8DA2@maxhl>
http://мой.домен
это не запрос. Это ничего не значащая строка. HTTP URL-ом она станет,
если к ней добавить /
Когда вы вводите эту строку в браузер, он [дописывает ресурс /]
создаёт запрос GET /, что равно запросу http://мой.домен/
Обратите внимание, не /index.html, а /. Это значит, что если у вас в
access.log есть GET /index.html, то либо люди руками вводят именно
этот адрес, либо ссылки ведут на именно этот адрес.
nginx, видя этот запрос, обрабатывает его в соответствии с указанными location.
(А так как запрос корня сайта - относительно частый, иногда самый
частый, то есть много смысла прописать на него отдельный location)
location = / {
fastcgi_pass unix:/mnt/md0/php-fcgi.sock;
include /usr/local/nginx/conf/phpcgi.conf;
}
Поскольку на location / никаких правил не написано (по крайней мере в
том, что вы прислали), работает модуль autoindex и запрос внутри
переписывается в /+(по очереди всё из директивы index)
>> index index.php index.html index.htm;
После первой подстановки (index.php) будет обрабатываться запрос
/index.php и сработает ваш location ~ .php$
Как вы заметили, здесь не сказано почему в error.log появляются
index.html failed (2: No such file or directory).
В связи с тремя причинами:
1) вы так и не сказали какой был запрос в результате которого возникла
ошибка. Ваш nginx сохраняет запросы в /home/logs/content_access.log
2) вполне возможно, из-за того что я плохо знаю внутреннее устройство
nginx я что-то описал неверно
3) и, наконец, самая вероятная причина - клиенты (браузеры)
действительно спрашивают /index.html. Но не браузер магически делает
это, а люди руками пишут. Или ссылки ведут на такой адрес. В любом
случае можно выяснить только с помощью access.log
Чтобы связать записи из error.log и access.log используйте время. То
есть чтобы увидеть запросы относительно ошибки
>> 2009/04/21 18:22:45 [error] 29090#0: *166570 open()
>> "/home/content/index.html" failed (2: No such file or directory), client:
нужно в access.log искать запросы произошедшие примерно в 2009/04/21 18:22:45.
В целом, если у вас всё работает - ситуация нормальная, неважно кто
куда пишет какие ошибки.
Если вас очень заботит, чтобы лог не засирался этими ошибками, можно
попробовать:
1. index index.php; # index.html index.htm
2. location = / {см.выше} - это даже не "можно", а "нужно"
3. как выключить -
http://sysoev.ru/nginx/docs/http/ngx_http_core_module.html#log_not_found
учтите, что эта директива может не поддерживаться в вашей версии nginx.
Также стоит посмотреть в сторону директивы try_files. Это просто
удобство, никаких проблем она не решит.
2009/4/21 <maxhl@xxxxxxxxxxxxxx>:
> А какой запрос делает броузер при открытии http://мой.домен
> Наверное index.html ... Тоесть это нормальная ситуация? А можно как то
> выключить ведение лога для этого файла?
>
> -----Original Message-----
> From: owner-nginx-ru@xxxxxxxxx [mailto:owner-nginx-ru@xxxxxxxxx] On Behalf
> Of Sergey Shepelev
> Sent: Tuesday, April 21, 2009 6:57 PM
> To: nginx-ru@xxxxxxxxx
> Subject: Re: Что значит эта ошибка ?
>
> Запрос какой был?
>
> 2009/4/21 <maxhl@xxxxxxxxxxxxxx>:
>> В error логе полно таких ошибок:
>> 2009/04/21 18:22:45 [error] 29090#0: *166570 open()
>> "/home/content/index.html" failed (2: No such file or directory), client:
>> ...
>> У меня везде прописан index.php а он все равно ищет index.html ...
>>
>> Конфиг вирт хоста:
>> server {
>> listen 80;
>> listen 81;
>> listen 82;
>>
>> server_name мой.домен *.мой домен;
>> access_log /home/logs/content_access.log combined;
>> error_log /home/logs/content_error.log info;
>> server_name_in_redirect off;
>> root /home/content;
>> index index.php index.html index.htm;
>>
>> # redirect to php<----->
>> location ~ .php$ {
>>
>> set $path_info $fastcgi_script_name;
>> set $real_script_name $fastcgi_script_name;
>> if ($fastcgi_script_name ~ "(.+?.php)(/.+)$") {
>> set $real_script_name $1;
>> set $path_info $2;
>> }
>> fastcgi_param SCRIPT_FILENAME /home/content$real_script_name;
>> fastcgi_param SCRIPT_NAME $real_script_name;
>> fastcgi_param PATH_INFO $path_info;
>> fastcgi_pass unix:/mnt/md0/php-fcgi.sock;
>> include /usr/local/nginx/conf/phpcgi.conf;
>> }
>>
>> include /usr/local/nginx/conf/404;
>> include /usr/local/nginx/conf/anti_lich;
>> include /usr/local/nginx/conf/.ht;
>> }
>>
>>
>> #phpcgi.conf
>> fastcgi_pass_request_body off;
>> client_body_in_file_only clean;
>> fastcgi_param REQUEST_BODY_FILE $request_body_file;
>> fastcgi_param<->CONTENT_TYPE<--><------>$content_type;
>> fastcgi_param<->CONTENT_LENGTH<><------>$content_length;
>> fastcgi_param DOCUMENT_ROOT<-><------>$document_root;
>> fastcgi_param<->DOCUMENT_URI<--><------>$document_uri;
>> fastcgi_param<->GATEWAY_INTERFACE<----->CGI/1.1;
>> #fastcgi_param PATH_INFO
>> <---><------>"http://$http_host$request_uri";
>> #fastcgi_param PATH_TRANSLATED "/home/content$document_uri";
>> fastcgi_param<->QUERY_STRING<--><------>$query_string;
>> fastcgi_param<->REMOTE_ADDR<---><------>$remote_addr;
>> fastcgi_param<->REMOTE_PORT<---><------>$remote_port;
>> fastcgi_param<->REQUEST_URI<---><------>$request_uri;
>> fastcgi_param<->REQUEST_METHOD<><------>$request_method;
>> fastcgi_param<->SCRIPT_NAME<---><------>$request_uri;
>> fastcgi_param<->SERVER_ADDR<---><------>$server_addr;
>> #fastcgi_param<>SERVER_NAME<---><------>$server_name;
>> fastcgi_param<->SERVER_PORT<---><------>$server_port;
>> fastcgi_param<->SERVER_PROTOCOL><------>$server_protocol;
>> fastcgi_param<->SERVER_SOFTWARE <------>nginx/$nginx_version;
>>
>> fastcgi_param REDIRECT_STATUS 200;
>> fastcgi_index index.php;
>>
>> Заранее спасибо.
>> ____________________________
>> С уважением Max ICQ 71006063
>>
>>
>>
>>
>>
>
>
>
|