'Файл, не найденный' точный тракт в nginx и php-fpm

Предположение: Ваш пользовательский сценарий, работая на всех трех полях, спотыкается за другие экземпляры себя при попытке управлять теми же файлами от трех мест; клиент NFS, работающий на удаленной системе, говорит ее ядру, что она удалила файл, но она была на самом деле удалена процессом в другой системе тем временем, таким образом, удаленный клиент застревает.

Решение: Используйте NFS, чтобы позволить удаленным системам получать доступ к файловой системе, но только запускать скрипт очистки в системе экспорта.

1
задан 23 May 2017 в 15:41
1 ответ

Решением будет регистрация необходимых переменных с помощью nginx с использованием log_format .

В простейшем случае это может быть выглядит так (вставьте этот код в контекст http ):

log_format mylog '$fastcgi_script_name';
access_log  /var/log/nginx/access.log  mylog;

Затем вы увидите результаты в файле журнала доступа (в моем случае /var/log/nginx/access.log

Другое решение - скомпилировать nginx с HttpHeadersMoreModule . Этот модуль позволяет вам манипулировать заголовками http с гораздо большей гибкостью, чем с директивой nginx default add_header . Итак, чтобы просмотреть значение $ fastcgi_script_name , вы можете написать:

location ~ \.php$ {
    more_set_headers    "x-debug-header: $fastcgi_script_name";
    fastcgi_pass        127.0.0.1:9000;
    ...
}

Затем вы можете увидеть заголовки в Google Chrome DevTools на вкладке «Сеть» (или аналогичные инструменты в других браузерах).

PS с HttpHeadersMoreModule вы также можете перепишите заголовок Server , если вам, конечно, нужно:

more_set_headers    "Server: my_server";

Удачи!

3
ответ дан 3 December 2019 в 18:48

Теги

Похожие вопросы