Я пытаюсь разделить файлы журнала доступа на моем сервере Nginx.Журнал доступа не будет регистрироваться после замены новым файлом журнала
Для формулировки файла я просто переименую исходный файл журнала доступа и создаю новый файл журнала доступа, чтобы я ничего не пропустил.
Но после замены файла Nginx ничего не записывает в этот файл, но работает до тех пор, пока не заменит файл.
Nginx снова запускает запись в замененный файл после перезапуска Nginx.
Я не вижу, что я делаю неправильно, любая помощь?
Первый бит PHP кода
if(rename("access.log", $tempname)){ // I'm renaming the access log file
$fp = fopen("access.log","wb");
if($fp == false){
}else{
fwrite($fp,$content); // I'm creating a new access log file
fclose($fp);
}
// I'm phrasing the renamed file here
}
Не уверен, но я бы предположил, что nginx хранит дескриптор открытого файла для файла, поэтому он открывается только при перезагрузке nginx? –
Итак, я прочитал исходный код для nginx, и он выглядит так, как файл журнала открывается только при запуске программы, а затем дескриптор файла сохраняется для любого добавления к файлу. См. Https://github.com/nginx/nginx/blob/master/src/core/nginx.c#L280 –