Re: unit и его лог

Валентин Бартенев vbart на nginx.com
Ср Июл 3 17:47:31 UTC 2019


On Wednesday 03 July 2019 12:47:01 Anton Kiryushkin wrote:
> Спасибо за ваш ответ.
> 
> Ответ от php-fpm я мог найти в error-log nginx-a. Ну я не скажу, какую
> именно. Еще раз, проблема заключается в том, что в логе в access.log nginx
> есть 500-й код ответа. Но причину этого 500-го кода нельзя найти в логе
> ошибок php (а там прописана опция error_log), и логе unit и в логе nginx,
> потому что там в принципе не должно быть этих ошибок. В случае с fpm в логе
> ошибок nginx гарантированно причину можно было найти. Приложение не
> возвращает просто так 500-ю ошибку.
> 
> Поэтому и возник вопрос, как же можно заставить unit писать лог любых своих
> ошибок в какой-то файл. Ну или куда вообще можно было бы копать, так как
> возможные вещи, которые есть возможность предпринять в php, на мой взгляд,
> предприняты.
[..]

В error-log nginx писалось то, что приходило от php-fpm через stderr-канал,
а тот в свою очередь посылал туда то, что php писал в stderr.

В случае Unit-а весь stderr из php направляется в unit.log и собственно там
и должен быть.

Могу предложить попробовать собрать php модуль с патчем ниже.  В этом случае
всякий раз, когда php-интерпретатор возвращает ответ с 500-ым кодом, в unit.log
будет об этом запись.

2019/07/03 20:45:02.899 [warn] 14919#14919 [unit] #7: application returned 500 response

Это, как минимум, позволит исключить ситуацию, что 500-ую генерирует сам Unit
и не сообщает об этом по какой-то причине.

--
Валентин Бартенев


diff -r 2b068c8361f9 src/nxt_php_sapi.c
--- a/src/nxt_php_sapi.c        Tue Jul 02 16:44:08 2019 +0300
+++ b/src/nxt_php_sapi.c        Wed Jul 03 20:32:38 2019 +0300
@@ -774,6 +774,10 @@ nxt_php_send_headers(sapi_headers_struct
         status = 200;
     }
 
+    if (status == 500) {
+        nxt_unit_req_warn(req, "application returned 500 response");
+    }
+
     rc = nxt_unit_response_init(req, status, fields_count, resp_size);
     if (nxt_slow_path(rc != NXT_UNIT_OK)) {
         return SAPI_HEADER_SEND_FAILED;




Подробная информация о списке рассылки nginx-ru